【问题标题】:PHP SimpleXML read comment with xPathPHP SimpleXML 使用 xPath 读取注释
【发布时间】:2014-11-26 11:14:35
【问题描述】:

我正在加载一个有效的 XML 提要。 但似乎我在我的 xpath 查询中遗漏了一些东西。 其实我想看一下title节点的评论,但是好像不行。

$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>

有人知道我如何阅读评论吗?

【问题讨论】:

  • 上述 xml 提要示例在哪里?以便我们可以看到您想要达到的目标
  • @Ghost 现在我提供了我的提要的结构

标签: php xml xpath


【解决方案1】:

或者,您可以使用 DOMDocument 访问这些 cmets。示例:

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

【讨论】:

  • 以前我是用 DOMDocument 做的。但是simplexml_load_file 没有改变吗?
  • @pbaldauf 我不认为 simplexml 可以处理 cmets,当您尝试访问它时,它将返回父节点
猜你喜欢
  • 2015-03-05
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 2014-05-06
  • 1970-01-01
相关资源
最近更新 更多