我有这个xml资源,我想在php中解析它。
http://example.gov
我的PHP代码:
<?php
$userinput='http://example.gov/MapClick.php?lat=41.98&lon=-87.9&FcstType=digitalDWML';
$xml = simplexml_load_file($userinput);
echo $xml;
?>
我收到的错误:
警告:simplexml_load_file(http://forecast.weather.gov/MapClick.php?lat=41.98&lon=-87.9&FcstType=digitalDWML):无法打开流:HTTP请求失败!第4行的C:\ xampp \ htdocs \ xmlParser.php中禁止HTTP / 1.0 403
警告:simplexml_load_file():I / O警告:无法在第4行的C:\ xampp \ htdocs \ xmlParser.php中加载外部实体“http://forecast.weather.gov/MapClick.php?lat=41.98&lon=-87.9&FcstType=digitalDWML”
只是要添加,xml资源在不同的服务器上
答案 0 :(得分:1)
服务器似乎是基于用户代理阻止请求。您可以使用cURL或file_get_contents()
并指定用户代理,然后使用simplexml_load_string()
来提取您选择的结果。
<?php
$context = stream_context_create(array('http' => array('header' => 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36')));
$url = "http://forecast.weather.gov/MapClick.php?lat=41.98&lon=-87.9&FcstType=digitalDWML";
$xml = file_get_contents($url, false, $context);
$xmlObject = simplexml_load_string($xml);
print_r($xmlObject);
?>