Php 带有解码实体的SimpleXML

Php 带有解码实体的SimpleXML,php,xml,simplexml,xml-entities,Php,Xml,Simplexml,Xml Entities,如何使SimpleXML在PHP中用各自的字符替换HTML/XML实体 假设此XML文档以字符串形式存在: $data = '<?xml version="1.0" encoding="ISO-8859-1"?><example>Tom &amp; Jerry</example>' 解码XML实体的最佳方法是什么?我想XML解析器应该这样做,我想避免在解析之前运行html\u entity\u decode(实际上,它也不会工作)。这可能是字符串编码

如何使SimpleXML在PHP中用各自的字符替换HTML/XML实体

假设此XML文档以字符串形式存在:

$data = '<?xml version="1.0" encoding="ISO-8859-1"?><example>Tom &amp; Jerry</example>'

解码XML实体的最佳方法是什么?我想XML解析器应该这样做,我想避免在解析之前运行
html\u entity\u decode
(实际上,它也不会工作)。这可能是字符串编码的问题吗?如果是这样,我如何跟踪和修复它?

我不知道这在某些情况下是否有效,但可能

$xml = new SimpleXMLElement(html_entity_decode($data));

你所说的解码是什么意思?当您回显或打印$xml时,输出显示“&”符号。我刚刚重新阅读了您的帖子……在我回答之前,您是否声明要避免在其中运行html实体解码。如果是,我很抱歉。也许你可以做一些像。。。。。新的SimpleXMLElement(str_replace(“&;”,“&;”,$data))?我的假设是,如果SimpleXMLElement正确解析数据,那么这不是XML语法的问题……这就是数据输入XML文档的方式。您需要在它出现之前或出现时修复它……不幸的是,如果您最终解码或破坏了xml,这将无法工作。
$xml = new SimpleXMLElement(html_entity_decode($data));