如何在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文件。除了这个问题,它通常工作正常。
答案 0 :(得分:1)
XML与HTML不同,只知道四个命名实体:<
,>
,'
和"
。要更多地教它,你需要一个带有实体声明的DOCTYPE; XML Schema对您没有帮助。