【发布时间】:2013-04-29 07:25:50
【问题描述】:
我感觉真的误解了带有 XML 的 DTD:
在一个 XML 文件(它有一个 doctype)中,我在一个实体中包含了另一个 XML 文件(它也有一个 doctype)。我的解析器对此很生气。
我知道问题出在 Doctype 上,因为如果我删除它,一切都会好起来的。但我可以不用它,我需要一个最终的 XML 文件,包括其他 XML 文件。
这里是/datas.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE datas [
<!ENTITY Path_datas SYSTEM "Path/datas.xml" >
]>
<datas>
&Path_datas;
</datas>
这里是 /Path/datas.xml :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE oolodatas [
<!ENTITY Local_DefaultProject_Box_datas SYSTEM "Local/DefaultProject/Box/datas.xml" >
]>
<datas>
<box>
LOL
</box>
</datas>
所以在 PHP 文件中我这样做:
$datas = simplexml_load_file(realpath('maforge/datas/datas.xml'), NULL, LIBXML_NOENT);
var_dump($datas->asXML());
这是我得到的错误:
SCREAM:为 ( ! ) 忽略错误抑制 警告: simplexml_load_file(): file:///C:/wamp/www/forge/Path/datas.xml:2: 解析器错误:StartTag:无效元素名称
感谢您的帮助!
【问题讨论】:
标签: xml dtd xml-entities