【问题标题】:PHP XPath xml file cdata errorPHP XPath xml文件cdata错误
【发布时间】:2015-01-20 10:04:48
【问题描述】:

我正在尝试通过 xPath 从 XML 文件中获取数据。

这是 XML:

<item>
    <title>
        51-årig stukket i maven: Klapper i over for politiet
    </title>
    <link>
        http://newsbreak.dk/51-aarig-ringede-om-hjaelp-efter-knivstik-nu-tier-han/
    </link>
    <pubDate>Tue, 20 Jan 2015 09:19:46 +0000</pubDate>
    <description>
        <![CDATA[
    <img width="600" height="400" src="http://newsbreak.dk/wp-content/uploads/2015/01/politi44.jpg" class="attachment-big" alt="Foto: Colourbox (genrefoto)" /><br />51-årig mand vil ikke tale med politiet, selvom han selv ringede til ordensmagten for at få hjælp til knivstik
    ]]>
    </description>
    <category>
        <![CDATA[ A-historier ]]>
    </category>
    <category>
        <![CDATA[ Krim ]]>
    </category>
    <guid>
        http://newsbreak.dk/51-aarig-ringede-om-hjaelp-efter-knivstik-nu-tier-han/
    </guid>
</item>

这是PHP:

$titelQuery = $xpath->query("//item/title/text()");
$itemQuery = $xpath->query("//item");
$linkQuery = $xpath->query("//item/guid/text()");
$imageQuery = $xpath->query("//item/description/text()");

我得到了正确的标题和链接,但是当我试图获取“描述”部分时,我只得到图像标签之后的文本,如下所示:

<br />51-årig mand vil ikke tale med politiet, selvom han selv ringede til ordensmagten for at få hjælp til knivstik
]]>

【问题讨论】:

    标签: php xml xpath


    【解决方案1】:

    只定位&lt;description&gt; 节点,然后使用-&gt;nodeValue

    $imageQuery = $xpath->query("//item/description");
    echo $imageQuery->item(0)->nodeValue;
    

    Sample Output

    使用-&gt;evaluate() 也可以:

    echo $xpath->evaluate('string(//item/description)');
    

    【讨论】:

    • 非常感谢,但我仍然得到相同的输出,是不是xml文件newsbreak.dk/feed
    • @PatrickLarsen 不,图像标签在那里,只需右键单击 - > 检查元素,它就在那里。我附上了答案的演示。
    • 我在这里粘贴了我的代码,仍然出现同样的错误:codepad.viper-7.com/UAqpLw
    • 非常感谢,将您的答案标记为正确:-)
    • @PatrickLarsen 哦,好吧,无论如何,有问题的行是@$this-&gt;dom-&gt;loadHTML($html);。由于您正在加载 xml,因此您的班级应该是 @$this-&gt;dom-&gt;loadXML($html);。我不知道你为什么需要(类)它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 2019-09-24
    • 2011-12-28
    • 2013-03-10
    • 1970-01-01
    • 2017-07-10
    相关资源
    最近更新 更多