Парсим xml
Автор: SysaninАпр 12
Как и обещал, небольшой пост про то как можно парсить XML документы с помощью встроенного в php 5 класса DOM.
Предположим что у нас есть XML документ myfile.xml следующего содержания:
<parent>
<child time="1239599247" name="1" />
<child time="1239799247" name="2" />
<child time="1239799267" name="3" />
</parent>
Допустим нам надо спарсить теги childtime и их свойства. Удобнее создать некоторый массив объектов, где свойства объектов будут свойствами соответствующего тега child. Вот таким кодом это можно сделать:
//грузим XML файл, обратите внимание, что
//при загрузке HTML не рекомендуется использовать эту функцию
$xml->load("myfile.xml");
//получаем все теги track
$nodes = $xml->getElementsByTagName('track');
$result = array(); // массив с результатом работы
//создаем объект из того что спарсили
for($i=0, $max=$nodes->length; $i<$max; $i++){
//$atr содержит название атрибута, а функцией $nodes->item($i)->getAttribute($atr)
//получаем его значение
foreach($nodes->item($i)->attributes as $atr => $val){
$result[$i]->$atr = $nodes->item($i)->getAttribute($atr);
}
}
print("{$result[0]->name}.{$result[2]->time}");
В результате получим:
1.1239799267
Нет комментариев