PHP XPath xml 文件 cdata 错误

PHP XPath xml file cdata error

我正在尝试通过 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()");

我正确地获得了标题和 link,但是当我尝试获得 "description" 部分时,我只获得图像标签之后的文本,如下所示:

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

只需定位 <description> 节点,然后使用 ->nodeValue:

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

Sample Output

使用 ->evaluate() 也可以:

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