使用PHP查询XML文件以返回某些书签

时间:2010-03-08 04:18:52

标签: php xml parsing simplexml

我有一个XML文件,里面装满了Google书签的书签。 (文件:http://gist.github.com/324844)我想根据此路径提取书签:xml_api_reply-> bookmarks-bookmark-> labels-> label。

所以,我的问题是如何使用SimpleXML来获取具有Inspiration标签的书签?某些书签可能包含多个书签。

编辑:上面列出的文件只是一个样本。

1 个答案:

答案 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