Я пытаюсь разобрать этот XML-файл
[0] => SimpleXMLElement Object ( [title] => Johannesburg in November [link] => SimpleXMLElement Object ( [@attributes] => Array ( [rel] => alternate [type] => text/html [href] => http://www.tompeters.com/dispatches/012120.php?rss=1 ) ) [id] => tag:www.tompeters.com,2011://2.12120 [published] => 2011-09-08T14:03:23Z [updated] => 2011-09-08T14:11:49Z [summary] => Tom will be giving a day-long presentation in November in Johannesburg, South Africa. Our friends at the Business Results Group... [author] => SimpleXMLElement Object ( [name] => Shelley Dolley ) [category] => SimpleXMLElement Object ( [@attributes] => Array ( [term] => Announcements [scheme] => http://www.sixapart.com/ns/types#category ) ) [content] => SimpleXMLElement Object ( [@attributes] => Array ( [type] => html ) ) )
мой PHP-код для этого
$url = 'http://www.tompeters.com/atom.xml'; $xml = simplexml_load_file($url); echo '<pre>'; foreach($xml->entry as $entry){ echo $entry->title; echo "<br />"; foreach ($entry->link->@attributes as $attr){ echo $attr->href; echo "<br />"; } }
проблема в том, что бит @attributes
разбивает код.
Как получить эту ссылку href?
@ = Атрибуты , поэтому
foreach ($entry->link->attributes() ...
Официальная документация
Кажется, у вас есть некоторые сомнения по сравнению с SimpleXML (на основе вашего прошлого вопроса),
возможно, стоит прочитать документацию SimplXML для лучшего понимания.
Теги SO – https://stackoverflow.com/questions/tagged/simplexml?sort=votes
http://php.net/manual/en/simplexmlelement.attributes.php
$entry->link->attributes()
Также там они могут быть доступны с помощью оператора [] – проверьте следующую ссылку http://www.impossible.co.in/blog/padya/accessuse-simplexmlelementattributes
С помощью SimpleXML доступ к атрибутам доступен через синтаксис типа массива (или через attributes()
как указано в других ответах).
$entry->link['href'];