简单的XML名称空间警告

时间:2014-08-22 18:00:57

标签: php namespaces simplexml

我正在尝试使用simplexml解析以下XML ...

http://datapoint.metoffice.gov.uk/public/data/txt/wxfcs/regionalforecast/xml/500?key=ed47ad61-5033-48c8-bf7c-6c4c0b17c3f3

但是只要我添加一行......

$xml = simplexml_load_file('http://datapoint.metoffice.gov.uk/public/data/txt/wxfcs/regionalforecast/xml/500?key=ed47ad61-5033-48c8-bf7c-6c4c0b17c3f3');

我得到了错误,如

namespace warning : xmlns: URI www.metoffice.gov.uk/xml/metoRegionalFcst is not absolute

我似乎无法解决如何解决这个问题。

4 个答案:

答案 0 :(得分:9)

只需在simplexml_load_file

之前添加@

喜欢

$ xml = @simplexml_load_file('http://datapoint.metoffice.gov.uk/public/data/txt/wxfcs/regionalforecast/xml/500?key=ed47ad61-5033-48c8-bf7c-6c4c0b17c3f3');

答案 1 :(得分:0)

libxml_use_internal_errors(true);
$xml = simplexml_load_file($file->getTempName());


us3.php.net/manual/es/function.simplexml-load-file.php
us3.php.net/manual/es/function.libxml-use-internal-errors.php
us3.php.net/manual/es/simplexml.examples-errors.php

答案 2 :(得分:0)

基本上,因为这只是来自 PHP 的警告,您可以通过执行任何适合您的方法来抑制它。

可能是其中之一

1.@simplexml_load_string($response):` PHP 支持一种错误控制操作符:at 符号 (@) 表示更多 https://www.php.net/manual/en/language.operators.errorcontrol.php

2.simplexml_load_string($response,'SimpleXMLElement', LIBXML_NOWARNING); https://github.com/AuthorizeNet/sdk-php/issues/135

答案 3 :(得分:0)

如果对你有帮助,你可以做下一件事情

// Set the url of your XML file

 $XmlPath = resource_path('xml/').'mifile.xml';

//Parse the XML file, dont forget use the "Nowarning lib" and "Compact" those are so usefull

 $Codes = simplexml_load_file ( $XmlPath , 'SimpleXMLElement' , LIBXML_NOWARNING | LIBXML_COMPACT   , null , false );