PHP:如何使用 SimpleXMLElement 处理 <![CDATA[? [英] PHP: How to handle <![CDATA[ with SimpleXMLElement?

查看:28
本文介绍了PHP:如何使用 SimpleXMLElement 处理 <![CDATA[?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我注意到在包含这些 CDATA 标记的文档上使用 SimpleXMLElement 时,内容始终为 NULL.我该如何解决这个问题?

I noticed that when using SimpleXMLElement on a document that contains those CDATA tags, the content is always NULL. How do I fix this?

另外,很抱歉在这里发送有关 XML 的垃圾邮件.我一直在尝试让基于 XML 的脚本工作几个小时......

Also, sorry for spamming about XML here. I have been trying to get an XML based script to work for several hours now...

<content><![CDATA[Hello, world!]]></content>

如果您搜索SimpleXMLElement cdata",我在 Google 上尝试了第一次点击,但没有成功.

I tried the first hit on Google if you search for "SimpleXMLElement cdata", but that didn't work.

推荐答案

您可能没有正确访问它.您可以直接输出它或将其转换为字符串.(在本例中,强制转换是多余的,因为 echo 无论如何都会自动执行)

You're probably not accessing it correctly. You can output it directly or cast it as a string. (in this example, the casting is superfluous, as echo automatically does it anyway)

$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 可能会让你的运气更好:


You might have better luck with LIBXML_NOCDATA:

$content = simplexml_load_string(
    '<content><![CDATA[Hello, world!]]></content>'
    , null
    , LIBXML_NOCDATA
);

这篇关于PHP:如何使用 SimpleXMLElement 处理 &lt;![CDATA[?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆