【发布时间】:2018-12-18 10:56:51
【问题描述】:
我需要解析一个包含 CDATA 标记的 XML 文件。在这个标签里面,还有一个我想得到的标签。如何使用 XMLReader 实现这一点?
例子:
<glz:Param name="TITLE">
<![CDATA[Yellow <http://www.yellow.it>]]>
</glz:Param>
我怎样才能得到完整的信息Yellow <http://www.yellow.it>?我只能得到“黄色”。
这是我的代码:
// load file, create a reader variable, etc.
if($reader->nodeType == XMLReader::CDATA)
{
echo $reader->value;
}
【问题讨论】:
-
您是在浏览器还是 shell 中回显该值?
-
@Gordon 浏览器
-
好的,所以问题可能是 XmlReader 正确地获取了 CDATA 标记中的全部内容,但您的浏览器再次将其解释为 html。检查页面源以查看它是否包含 a 元素。如果是这样,请尝试 echo htmlentities($reader->value) 或发送带有 content-type: text/plain 的标头
-
@Gordon 成功了!太感谢了! :)
-
@Gordon 也许你应该把它写成答案而不是评论......这样我就可以选择它作为最佳答案:)
标签: php xml parsing xmlreader cdata