simplexml_load_file parse [@attributes] => Array
I am trying to parse this xml feed
[0] => SimpleXMLElement Object
(
[title] => Johannesburg in November
[link] => SimpleXMLElement Object
(
[@attributes] 开发者_如何学C=> 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
)
)
)
my PHP code to do so is
$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 />";
}
}
the problem is that the @attributes
bit breaks the code..
How do i get that href link?
The @ = attributes, so
foreach ($entry->link->attributes() ...
Official documentation
It seems you have some doubts over SimpleXML (based on your past question),
it might worth to read the SimplXML documentation for better understanding.
SO tags - https://stackoverflow.com/questions/tagged/simplexml?sort=votes
http://php.net/manual/en/simplexmlelement.attributes.php
$entry->link->attributes()
Also there they can be accessed with [] operator - check next link http://www.impossible.co.in/blog/padya/accessuse-simplexmlelementattributes
With SimpleXML, access to attributes is available through array-style syntax (or via attributes()
as mentioned in other answers).
$entry->link['href'];
See: http://php.net/simplexml.examples-basic
精彩评论