PHP-将XML数据提取到2d数组
我想知道是否有人能帮我一把 我有一个KML文件(GoogleMapsXML),我需要将坐标提取到一个2D数组中 文件格式如下:PHP-将XML数据提取到2d数组,php,arrays,xml,simplexml,kml,Php,Arrays,Xml,Simplexml,Kml,我想知道是否有人能帮我一把 我有一个KML文件(GoogleMapsXML),我需要将坐标提取到一个2D数组中 文件格式如下: <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.1"> <Document> <Placemark> <name>Im a name</
<?xml version="1.0" encoding="UTF-8"?>
<kml
xmlns="http://earth.google.com/kml/2.1">
<Document>
<Placemark>
<name>Im a name</name>
<Point>
<coordinates>138.611798,-34.926053</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Im a name</name>
<Point>
<coordinates>138.611798,-34.926053</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Im a name</name>
<Point>
<coordinates>138.611798,-34.926053</coordinates>
</Point>
</Placemark>
[...]
我的KML文件将包含相当多的点,所以我需要能够自动做到这一点
任何帮助都将不胜感激
谢谢您可以使用SimpleXML获取所需的值,并将它们推送到数组中。例如:
$data = array();
$xml = simplexml_load_file('path/to/file.kml');
foreach($xml->Document->Placemark as $placemark) {
list($x, $y) = explode(',', $placemark->Point->coordinates); // explode coordinates by comma
$data[] = array($x, $y);
}
echo '<pre>';
print_r($data);
$data=array();
$xml=simplexml_load_文件('path/to/file.kml');
foreach($xml->Document->Placemark作为$Placemark){
列表($x,$y)=分解(“,”,$placemark->Point->coordinates);//用逗号分解坐标
$data[]=数组($x,$y);
}
回声';
打印(数据);
您可以使用XPath实现这一点。只是别忘了设置名称空间
$xml=simplexml_load_文件('kml.xml');
$xml->registerXPathNamespace('ns','http://earth.google.com/kml/2.1');
$names=$xml->xpath('//ns:coordinates');
$coordinates=array();
foreach($name作为$name){
$coordinates[]=分解(“,”,$name);
}
打印(坐标);
您可以看看
$data = array();
$xml = simplexml_load_file('path/to/file.kml');
foreach($xml->Document->Placemark as $placemark) {
list($x, $y) = explode(',', $placemark->Point->coordinates); // explode coordinates by comma
$data[] = array($x, $y);
}
echo '<pre>';
print_r($data);