无效格式xml的最佳PHP解析器[重复]
Posted
技术标签:
【中文标题】无效格式xml的最佳PHP解析器[重复]【英文标题】:Best PHP parser for invalid format xml [duplicate] 【发布时间】:2013-03-24 04:02:17 【问题描述】:什么是最好的 xml 解析器,尤其适用于技术上无效格式且缺少 <?xml
标记的 XML?
我不能使用 simpleXML,因为这会导致无效的错误。我知道我可以在获得 xml 后手动添加我需要的标签,但我更喜欢看看你们认为将 xml 解析为 php 中的数组的最佳方法。
【问题讨论】:
如果它不是有效的 xml,那么从技术上讲,它不是真正的 xml……所以不要看 xml 解析器来处理不是真正的 xml。期待一只鸡成为你的香蕉并没有真正的用处。 ...大多数时候我遇到这样的错误是因为“禁止”的 XML 字符,请在此处查看:***.com/questions/730133/invalid-characters-in-xml “技术上无效”是什么意思?没有<?xml
序言本身不足以使其无效。您正在解析的文档的确切问题是什么?您能否展示一些文档或错误消息的示例?
该文档不包含
【参考方案1】:
你可以试试这个
<?php
//invalid xml file
$xmlfile = 'test.xml';
$xmlparser = xml_parser_create();
// open a file and read data
$fp = fopen($xmlfile, 'r');
$xmldata = fread($fp, 4096);
xml_parse_into_struct($xmlparser,$xmldata,$values);
xml_parser_free($xmlparser);
print_r($values);
?>
【讨论】:
【参考方案2】:您可以使用SimpleXML
并使用libxml_use_internal_errors(false);
禁用错误。如果 SimpleXML 根本不会使用您的字符串,我之前曾亲自使用 DOM
来解析/修复损坏的 XML。
另一方面,为什么不在阅读之前简单地添加<?xml
字符?
【讨论】:
这就是我的想法,但不确定这是否是最好的方法。我也尝试使用 DOM,但无法让它工作以上是关于无效格式xml的最佳PHP解析器[重复]的主要内容,如果未能解决你的问题,请参考以下文章