【发布时间】:2014-08-05 16:31:22
【问题描述】:
我很难通过 PHP 的 SimpleXMLElement 正确解析 this XML。我得到的错误(如下)看起来像是解析错误,但我似乎找不到任何问题。而且,由于这是国家气象局的警报提要,我不得不假设其他人正在提取此提要并使其正常工作。
我已经尝试了以下所有方法以及它们的几种变体:
$simpleFeed = new SimpleXMLElement(simplexml_load_string(file_get_contents('http://alerts.weather.gov/cap/us.php?x=0')));
和
$simpleFeed = new SimpleXMLElement(simplexml_load_string('http://alerts.weather.gov/cap/us.php?x=0'));
和
$simpleFeed = new SimpleXMLElement('http://alerts.weather.gov/cap/us.php?x=0', NULL, TRUE);
我已经包含了我目前遇到的错误,但行号偶尔会发生变化(我不确定这是我做的还是国家气象局的 Feed 做的):
SimpleXMLElement::__construct(): Entity: line 107: parser error : Start tag expected, '<' not found
SimpleXMLElement::__construct():
SimpleXMLElement::__construct(): ^
我运行的每个 XML 解析器/验证器都表示它是有效的,但有一些警告。我在这里看不到任何表明 XML 是问题的东西,除了错误消息使它看起来像这样。
有没有人有这样的经验并可以提供帮助?
【问题讨论】:
-
您的第三个代码示例对我有用,
$xmlObj = simplexml_load_file('http://alerts.weather.gov/cap/us.php?x=0');也是如此。 -
是的,它似乎也对我有用。我不确定到底是什么问题,尽管假设我这边没有错误(这是一个延伸),但可能是我加载文件时文件不完整。
标签: php xml xml-parsing simplexml weather