如何使用SimpleXML在PHP中用各自的字符替换HTML / XML实体?
假设在字符串中包含此XML文档:
$data = '<?xml version="1.0" encoding="ISO-8859-1"?><example>Tom & Jerry</example>'
显然,我希望SimpleXml将&
解码为&
。它默认情况下不会这样做。我尝试了这两种方法,但都没有效果:
$xml = new SimpleXMLElement($data);
$xml = new SimpleXMLElement($data, LIBXML_NOENT);
解码XML实体的最佳方法是什么?我想XML解析器应该这样做,我想避免在解析之前运行html_entity_decode
(实际上,它也不会工作)。这可能是字符串编码的问题吗?如果是这样,我该如何跟踪和修复它?
答案 0 :(得分:0)
我不知道在某些情况下这是否会起作用,但也许......
$xml = new SimpleXMLElement(html_entity_decode($data));
http://www.php.net/manual/en/function.html-entity-decode.php