我有一个XML文件,里面装满了Google书签的书签。 (文件:http://gist.github.com/324844)我想根据此路径提取书签:xml_api_reply-> bookmarks-bookmark-> labels-> label。
所以,我的问题是如何使用SimpleXML来获取具有Inspiration标签的书签?某些书签可能包含多个书签。
编辑:上面列出的文件只是一个样本。
答案 0 :(得分:1)
您必须使用XPath。
您想要的节点:
/xml_api_reply/bookmarks/bookmark
您要应用的过滤器:
[labels/label = "Inspiration"]
为您提供以下XPath查询:
/xml_api_reply/bookmarks/bookmark[labels/label = "Inspiration"]
在脚本中使用:
$xml_api_reply = simplexml_load_file('http://gist.github.com/raw/324844/e4b1e05118b09c61c2a5b8b9a3bab92b895de07c/GoogleBookmarksXMLOutput');
foreach ($xml_api_reply->xpath('/xml_api_reply/bookmarks/bookmark[labels/label = "Inspiration"]') as $bookmark)
{
// ...
echo $bookmark->asXML();
}
或者,您也可以使用较短的//bookmark[labels/label = "Inspiration"]
- 请参阅XPath tutorial