PHP SimpleXML使用xPath读取注释

时间:2014-11-26 11:14:36

标签: php xml xpath

我正在加载一个有效的XML Feed。 但似乎我在xpath查询中遗漏了一些东西。 实际上我想阅读标题节点的注释,但它似乎没有用。

$xml = simplexml_load_file( $feed_url );
$comment = $xml->xpath('//channel/item[1]/title//comment()');

Feed具有以下结构

<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
    <title>My main feed</title>
    <description>feed description</description>
    <link>http://www.example.com</link>
    <language>en_US</language>
    <lastBuildDate>Wed, 26 Nov 2014 11:44:13 UTC</lastBuildDate>

    <item>
        <title><!-- Special Image  --></title>
        <link></link>
        <guid>http://www.example.com/page/345</guid>
        <media:category>horizontal</media:category>
        <media:thumbnails>
            <media:thumbnail url="www.example.com/test.jpg" type="image/jpeg" height="324" width="545" />
        </media:thumbnails>
    </item>
    <item>
        <title>Here's a normal title</title>
        <description><![CDATA[Description Text]]></description>
        <link></link>
        <guid>http://www.example.com/page/123</guid>
        <media:category>horizontal</media:category>
    </item>
</channel>
</rss>

有没有人知道如何阅读评论?

1 个答案:

答案 0 :(得分:2)

或者,您可以使用DOMDocument来访问这些评论。例如:

$dom = new DOMDocument();
$dom->load($feed_url);
$xpath = new DOMXpath($dom);
$comment = $xpath->evaluate('string(//channel/item[1]/title/comment())');
echo $comment;