PHP:如何处理<![CDATA [与SimpleXMLElement?
我注意到,在包含这些CDATA标签的文档上使用SimpleXMLElement
时,内容始终为NULL
。 我该如何解决?
另外,抱歉在这里发送有关XML的垃圾邮件。 我一直在试图让基于XML的脚本现在工作几个小时…
<content><![CDATA[Hello, world!]]></content>
如果您search“SimpleXMLElement cdata”,我尝试了在Google上的第一次search,但是没有奏效。
您可能没有正确访问它。 您可以直接输出或将其转换为string。 (在这个例子中,铸造是多余的,因为无论如何回声自动)
$content = simplexml_load_string( '<content><![CDATA[Hello, world!]]></content>' ); echo (string) $content; // or with parent element: $foo = simplexml_load_string( '<foo><content><![CDATA[Hello, world!]]></content></foo>' ); echo (string) $foo->content;
用LIBXML_NOCDATA
你可能会有更好的运气:
$content = simplexml_load_string( '<content><![CDATA[Hello, world!]]></content>' , null , LIBXML_NOCDATA );
LIBXML_NOCDATA
是simplexml_load_file()
函数的可选第三个参数。 这将返回所有CDATA数据转换为string的XML对象。
$xml = simplexml_load_file($this->filename, 'SimpleXMLElement', LIBXML_NOCDATA); echo "<pre>"; print_r($xml); echo "</pre>";
修复SimpleXML中的CDATA
这为我做了诡计:
echo trim($entry->title);
这对我来说是完美的。
$content = simplexml_load_string( $raw_xml , null , LIBXML_NOCDATA );