【发布时间】:2012-01-09 11:08:19
【问题描述】:
我使用这样的代码
$dom = new DOMDocument;
$dom->loadXML($xml_source);
$xml = simplexml_import_dom($dom);
我得到一个错误:
Warning (2): DOMDocument::loadXML() [domdocument.loadxml]: Premature end of data in tag ZverejnujeText line 34 in Entity, line: 273 [APP/Controller/RecordsController.php, line 43]
Warning (2): DOMDocument::loadXML() [domdocument.loadxml]: Premature end of data in tag StatnaPomocIneProgramyPodpory line 2 in Entity, line: 273 [APP/Controller/RecordsController.php, line 43]
Warning (2): simplexml_import_dom() [function.simplexml-import-dom]: Invalid Nodetype to import [APP/Controller/RecordsController.php, line 47]
尝试加载此xml (~110 kB) 时
根据 w3c 验证器,xml 是有效的。
加载this 没有问题(~25 kB,但结构相同)
如果我不使用 DOM 并直接加载 xml
$xml = simplexml_load_string($xml_source);
同样的错误发生。
我现在迷路了,我该如何解决?
【问题讨论】:
-
您提供的信息有误。 XML 无效,请阅读
DOMDocument::loadXML()报告的错误消息。您需要先修复 XML。无论如何,DOMDocument 读取大型且有效的 XML 文件没有问题。 -
w3schools.com/xml/xml_validator.asp 根据这一点,它在语法上是有效的,我无法在文档中发现任何错误。如果我没有忽略任何东西,它所抱怨的标签会正确关闭和嵌套
-
@RomanKoncek w3fools.com
-
该 XML 出现不同的错误:codepad.viper-7.com/rRfwBP
-
这个问题似乎是题外话,因为它不是一个编程问题,根据 OP 数据已被 Mysql 静默截断,OP 因此被误导,然后关于 XML 的有效性(截断XML 通常是无效的 XML)。
标签: php simplexml domdocument