Пытаюсь спарсить данные о пользователе ЖЖ. Читаю ресурс
exampleusername.livejournal.com/data/foaf, загружаю его в SimpleXML:
$input_xml = simplexml_load_string(file_get_contents('http://exampleusername.livejournal.com/data/foaf'));
Поскольку XML там необычный, а с множеством пространств имён, для извлечения полезных данных приходится грузить описания этих пространств имён. Так, например, получаем имя и дату рождения пользователя:
$person = $input_xml->children('http://xmlns.com/foaf/0.1/');
echo $person->Person->name.'<br/>';
echo $person->Person->dateOfBirth;
Теперь я пытаюсь извлечь дату создания блога, делаю следующее:
$blog = $person->Person->weblog->children('http://www.livejournal.org/rss/lj/1.0/');
Теперь если сделать var_dump() переменной $blog, то мы увидим следующее:
object(SimpleXMLElement)#4 (1) {
["@attributes"]=>
array(2) {
["dateCreated"]=>
string(19) "2008-12-15T18:00:10"
["dateLastUpdated"]=>
string(19) "2012-03-16T09:49:22"
}
}
Однако вызов
$blog->attributes() приводит к ошибке
«Warning: var_dump(): Node no longer exists in /var/www/test.php on line 45», ассоциативный массив
$blog['dateCreated'] тоже не работает. Что я делаю не так?
Пример разбираемого XML-файла