Мне было интересно, может ли кто-нибудь помочь мне с кодом.XML/PHP - Извлечение информации из нескольких узлов документа
У меня есть KML (Google Earth XML), который я пытаюсь импортировать в мое приложение.
Проблема, связанная с тем, что при извлечении данных она отлично работает до первой вещи узла и не обрабатывает остальную часть файла.
файл KML массивен, поэтому я покажу образец ниже:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Folder>
<name>Kalamunda</name>
<open>1</open>
<Document>
<name>Export 1418786594.kml</name>
<Placemark>
<name>76-122 Tourist Drive 207</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.072723865509,-31.98064436184923,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>76-122 Tourist Drive 207</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.0731288790703,-31.98067621355563,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>76-122 Tourist Drive 207</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.0735687613487,-31.98064436184923,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>12 Hinkler Rd</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.0740676522255,-31.98083319680418,0</coordinates>
</Point>
</Placemark>
</Document>
<Document>
<name>Export 1418785221.kml</name>
<Placemark>
<name>LOT 435 Collins Rd</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.0624188184738,-31.97887202447751,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>25 Central Rd</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.0589158535004,-31.9744125903374,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>49 Canning Rd</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.0574942827225,-31.97629422494352,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>13 Anne Ave</name>
<description>Walliston WA 6076</description>
<Point>
<coordinates>116.0673272609711,-31.99400063250859,0</coordinates>
</Point>
</Placemark>
</Document>
<Document>
<name>Export 1418783501.kml</name>
<Placemark>
<name>3 Lookout Rd</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.037417948246,-31.98043960061557,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>9 Ozone Terrace</name>
<description>Kalamunda WA 6076</description>
<Point>
<coordinates>116.0382279753685,-31.98028261669366,0</coordinates>
</Point>
</Placemark>
</Document>
</Folder>
</kml>
код им с помощью следующим образом:
$i = 0;
foreach($xml_data->Folder->Document->Placemark as $placemark) {
$data[$i][] = $placemark->name;
$data[$i][] = $placemark->description;
list($x, $y) = explode(',', $placemark->Point->coordinates);
$data[$i][] = array($x, $y);
$i++;
}
Используя этот код, он будет извлекать данные до тех пор, 12 меток Hinkler Rd, я думаю, потому что есть закрывающий тег, он не будет идти дальше.
Как я могу извлечь все данные, предоставленные XML в этом формате?
Любая помощь была бы принята с благодарностью.
Приветствия,
Это 'Плейлист' вас интересует - имя, описание, координаты? –
Да @MichaelBerkowski – BigJobbies