我有一个XML文档,我需要用PHP加载。我目前正在使用simplexml_load_file()函数,但是xml文件格式错误,因此我得到一个解析错误。
XML文件如下所示:
...
</result>something1>
</else>
</else>
</resu
...
正如您所看到的,这个XML很糟糕,而且这个函数在尝试解析它时会抛出错误。此外,我不需要这个已损坏的数据。我只想阅读我能做到的东西,把所有其他东西扔掉。
答案 0 :(得分:2)
正如Jonah Bron建议的那样,尝试DOMDocument :: loadHTML():
$dom = new DOMDocument();
$dom->strictErrorChecking = false;
libxml_use_internal_errors(true);
$dom->loadHTML($xml);
答案 1 :(得分:1)
@Juliusz
你实际上并不需要为此设置strictErrorChecking我不认为。我尝试了以下,似乎工作正常。要忽略设置libxml_use_internal_errors(true)所需的错误。基本上你想使用DOMDocument而不是simplexml。我尝试了下面的工作,没有任何问题:
<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
<cmd>login</cmd>
<login>Richard</login>
</else>
</else>
</document>
XML;
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($string);
print $dom->saveHTML();
?>
Thusjanthan Kubendranathan
答案 2 :(得分:0)
尝试整理它,它对我有用。