在PHP中加载格式错误的XML

时间:2010-12-22 23:09:56

标签: php xml

我有一个XML文档,我需要用PHP加载。我目前正在使用simplexml_load_file()函数,但是xml文件格式错误,因此我得到一个解析错误。

XML文件如下所示:

...
</result>something1>
</else>
</else>
</resu
...

正如您所看到的,这个XML很糟糕,而且这个函数在尝试解析它时会抛出错误。此外,我不需要这个已损坏的数据。我只想阅读我能做到的东西,把所有其他东西扔掉。

3 个答案:

答案 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)

尝试整理它,它对我有用。

http://hu2.php.net/manual/en/intro.tidy.php