首页 / XML / php – 无法解析格式不佳的XML
php – 无法解析格式不佳的XML
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 无法解析格式不佳的XML,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1337字,纯文字阅读大概需要2分钟。
内容图文
我一直试图解析this feed.如果你点击该链接,你会发现它甚至无法在浏览器中正确解析它.
无论如何,我的托管服务不会让我使用simplexml_load_file,所以我一直在使用cURL来获取它然后将字符串加载到DOM中,如下所示:
$dom = new DOMDocument;
$dom->loadXML($rawXML);
if (!$dom) {
echo 'Error while parsing the document';
exit;
}
$xml = simplexml_import_dom($dom);
但我得到错误(“DOMDocument :: loadXML()[domdocument.loadxml]:Entity’nbsp’未在Entity”中定义,然后我尝试使用SimpleXMLElement没有运气(它显示相同的错误“解析器错误:实体’nbsp’未定义“等等……因为该元素中的HTML).
$xml = new SimpleXMLElement($rawXML);
所以我的问题是,如何跳过/忽略/删除该元素,以便我可以解析其余的数据?
编辑:感谢mjv的解决方案!…我刚刚做了这个(对于其他有同样问题的人)
$rawXML = str_replace('<description>','<description><![CDATA[',$rawXML);
$rawXML = str_replace('</description>',']]></description>',$rawXML);
解决方法:
您可能需要引入一个可以添加的预解析步骤
<![CDATA[
在每个< description>之后标签
并添加
]]>
在每个< / description>之前标签
具体来说,(参见meder对相应PHP代码段的回复)
<description>blah <br /> blah, blah...</description>
should become
<description><![CDATA[blah <br /> blah, blah...]]></description>
以这种方式,’decription’元素的完整内容将被’转义’,因此在该元素中找到并且易于抛出XML解析逻辑的任何html(或甚至xhtml)构造都将被忽略.这将照顾& nbsp;你提到的问题,还有许多其他常见问题.
内容总结
以上是互联网集市为您收集整理的php – 无法解析格式不佳的XML全部内容,希望文章能够帮你解决php – 无法解析格式不佳的XML所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。