gpt4 book ai didi

php - 无法解析格式不正确的 XML

转载 作者:可可西里 更新时间:2023-11-01 00:11:58 31 4
gpt4 key购买 nike

我一直在尝试解析 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]:实体‘nbsp’未在实体中定义”),然后我尝试使用 SimpleXMLElement 但运气不佳(它显示相同的错误“解析器错误:实体'nbsp' 未定义”,等等......因为那个元素中的 HTML)。

$xml = new SimpleXMLElement($rawXML);

所以我的问题是,如何跳过/忽略/删除该元素以便我可以解析其余数据?


编辑:感谢 mjv 的解决方案!...我只是这样做了(对于其他有同样问题的人)

$rawXML = str_replace('<description>','<description><![CDATA[',$rawXML);
$rawXML = str_replace('</description>',']]></description>',$rawXML);

最佳答案

您可能需要使用类似以下内容来操作源代码:

$xml = @file_get_contents('http://www.wow-europe.com/realmstatus/index.xml');
if ( $xml ) {
$xml = preg_replace( '/&nbsp/', '&amp;nbsp', $xml );
$xml = new SimpleXMLElement($xml);
var_dump($xml);
}

在将它提供给 xml 解析器 AFAIK 之前,我很想推荐一些其他方式,但我认为这是唯一的方式。

编辑:我认为你实际上可以替换 <description><description><![CDATA[等等:

<?php
$xml = @file_get_contents('http://www.wow-europe.com/realmstatus/index.xml');
$xml = preg_replace( '/<description>/', '<description><![CDATA[', $xml );
$xml = preg_replace( '/<\/description>/', ']]></description>', $xml );
$xml = new SimpleXMLElement($xml);
var_dump($xml);

您需要为每个包含字符数据的元素执行此操作。

关于php - 无法解析格式不正确的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1518142/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com