首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在php中解析XML URL中的单行

在php中解析XML URL中的单行
EN

Stack Overflow用户
提问于 2016-03-17 20:32:23
回答 1查看 697关注 0票数 0

我有一个xml,我想在其中解析一行。但是我的脚本甚至不能读取XML。我查看了PHP parsing XML from URL给出的答案,但在file_get_contents()命令中仍然得到了3个错误。其他一些站点没有错误。

我的脚本是:

代码语言:javascript
复制
    <?php
    header('Content-type: text/html; charset=utf-8');

    $url = "https://geodata.nationaalgeoregister.nl/geocoder/Geocoder?zoekterm=1056SW+11";
    $data = file_get_contents($url);
    $data = iconv(mb_detect_encoding($data, mb_detect_order(), true), "UTF-8", $data);
    $xml = simplexml_load_string($data);

    print_r($xml);      
?>

在本例中,我尝试打印整个xml,但最终我希望它只打印XML的第5行,即坐标。如何克服这些错误,以及如何确保在此XML中只打印一行?

提前感谢!

EN

Stack Overflow用户

发布于 2016-03-17 20:51:13

也许PHP的SSL连接有问题(我用的是PHP7,一切正常)。

一方面,您可以尝试在没有SSL的情况下请求URL:

代码语言:javascript
复制
<?php
    header('Content-type: text/html; charset=utf-8');

    $url = "http://geodata.nationaalgeoregister.nl/geocoder/Geocoder?zoekterm=1056SW+11";
    $data = file_get_contents($url);
    $data = iconv(mb_detect_encoding($data, mb_detect_order(), true), "UTF-8", $data);
    $xml = simplexml_load_string($data);

    print_r($xml);      
?>

或者,您可以使用cURL进行连接(首选方法):

代码语言:javascript
复制
 $url = "https://geodata.nationaalgeoregister.nl/geocoder/Geocoder?zoekterm=1056SW+11";
 $c = curl_init();
 curl_setopt($c, CURLOPT_URL, $url);
 curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($c, CURLOPT_TIMEOUT, 10);
 $data = curl_exec($c);
 curl_close($c);

 print_r( $data );

如果你有XML字符串,你可以这样得到坐标:

代码语言:javascript
复制
$xml = simplexml_load_string($data);

$coord = $xml->xpath('/xls:GeocodeResponse/xls:GeocodeResponseList/xls:GeocodedAddress/gml:Point/gml:pos');    
echo $coord[0][0];
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36060658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档