1

在 XML 文档包含博客文章类型内容的环境中,如何避免尽可能多的实体冲突?

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: line 1104: parser error : Entity 'Acirc' not defined in ... (path)

导致此错误的行:

$results = new SimpleXmlElement( $xml );

我还可以控制生成 XML 文档的函数。我一直在尝试对引入 DOM 的每个元素使用此函数来修复实体解析错误:

function my_special_entity_function($text) {
    $text= html_entity_decode($text,ENT_QUOTES,"ISO-8859-1"); #NOTE: UTF-8 does not work!
    //$text= preg_replace('/&#(\d+);/me',"chr(\\1)",$text); #decimal notation
    //$text= preg_replace('/&#x([a-f0-9]+);/mei',"chr(0x\\1)",$text);  #hex notation

    return $text;
}

最后,我DOMDocument()用来创建 XML 文件。除了这个问题,它通常工作正常。

4

1 回答 1

1

XML 与 HTML 不同,它只知道四个命名实体:<>和. 要教它更多,你需要一个带有实体声明的 DOCTYPE;XML Schema 不会帮助您。 '"

于 2013-04-07T03:33:23.397 回答