【问题标题】:Difficulty parsing XML document "This XML file does not appear to have any style information associated with it."难以解析 XML 文档“此 XML 文件似乎没有任何与之关联的样式信息。”
【发布时间】:2017-11-04 06:20:01
【问题描述】:

过去几天我搜索了很多,但我现在辞职寻求帮助。

我正在使用 PHP 的 simplexml_load_file() 解析多个新闻网站,我的代码如下......

foreach ($sourceID as $s) {

$xml = simplexml_load_file($s['rss']);

$dateTimeArray = [];

if ($xml != false) {
foreach($xml->channel->item as $item)
{       
    foreach($item->pubDate as $date) {
        $dateTimeArray[] = (string) $date;
    }

    $s['dateTimeList'] = $dateTimeArray;        
}
array_push($source, $s);
} else {

echo 'error '.$s['id'];
}
}

有些网站显示“此 XML 文件似乎没有任何与之关联的样式信息。文档树如下所示。”显示在顶部,这与没有正确读取为 XML 文档有关吗?

最终我的 php 代码不会解析来自显示此消息的网站的任何数据,任何可以轻松添加到我当前代码中的帮助将不胜感激。

有问题的 xml 提要之一是这个 https://cointelegraph.com/rss

谢谢!

【问题讨论】:

  • 原则上,您的代码没有明显错误。 “此 XML 文件似乎没有任何样式...”消息是不相关的,并且可能只是巧合,显示该消息的提要与您的代码无法解析它相关。提供一个使用真正的 xml 提要的完整示例来获得帮助。
  • 这只是一个通知。 XML 文件可以像使用 CSS 的 HTML 一样设置样式。但是,如果不存在,它可以给您通知并打印出源,即 XML 数据 - 无需担心。有关更多信息,请参阅stackoverflow.com/questions/14804452/… 如果您想避免那些检查 xml-stylesheet 标记是否存在 - 如何在纯数据加载时考虑一个没有样式表的有效超过一个因为数据不需要花哨在其有效之前的样式。
  • 添加了一个不能作为示例的 RSS 提要:cointelegraph.com/rss

标签: php json xml parsing


【解决方案1】:

通过设置特定浏览器解决了这个问题:

ini_set("user_agent","Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Mobile Safari/537.36");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 2016-09-26
    • 1970-01-01
    相关资源
    最近更新 更多