2

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

假设有这个 XML 文档,在一个字符串中:

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

显然,我希望 SimpleXml 解码&amp;&. 默认情况下它不这样做。我尝试了这两种方法,但都没有奏效:

$xml = new SimpleXMLElement($data);
$xml = new SimpleXMLElement($data, LIBXML_NOENT);

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

4

1 回答 1

0

我不知道这在某些情况下是否会起作用,但也许......

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

http://www.php.net/manual/en/function.html-entity-decode.php

于 2013-08-07T15:34:40.060 回答