我必须像这样解析许多文档xml:
<doc id=lk-20130223040102_592>
<meta-info>
<tag name="date">2013-02-22</tag>
<tag name="source-encoding">ISO-8859-1</tag>
</meta-info>
<text><SE><E type="E:PERSON">Tom Taylor</E>, who runs <E type="E:ORGANIZATION:CORPORATION">MF&B Marine Warehouse</E> in <E type="E:LOCATION:OTHER">Hampton Roads</E>, is already watching contracts with the <E type="E:ORGANIZATION:GOVERNMENT">Navy</E> <E type="E:PER_DESC">dry</E> up at his small ship-repair <E type="E:ORG_DESC:CORPORATION">business</E>.</SE>
</text></doc>
<doc ...</doc>
我制作了一个简单的脚本来解析其中一个:
<?php
$xml=simplexml_load_file('wp7-lk-20130223040102.xml');
foreach ($xml->doc as $doc){
echo $doc['id'];
echo "<br>";
}
?>
但它会返回一组警告:
Warning: simplexml_load_file(): ^ in C:\wamp\www\parse_xml.php on line 6
我注意到一些错误(id = ...而不是id =&#34; ......&#34;)(父元素丢失)我纠正了我能做的事情,但也有很多其他错误。< / p>
是否有任何功能可以帮助我自动纠正错误xml?
答案 0 :(得分:1)
这是一个非php解决方案,但可能是该过程的一部分(甚至通过php自动化)。多年来,我一直依赖一款名为“整洁”的应用来快速修复HTML,XML。可能不起作用或可能使事情变得更糟;这只是一个建议。
tidy -xml yourfile.xml&gt;的Output.xml
我好运。 YMMV。
您的问题类似于Fix malformed XML in PHP before processing using DOMDocument functions,这表明Tidy php-extension