2016-12-01 62 views
2

我有一个XML格式的Api响应。如何为这两个元素获取gps_x和gps_y。使用php读取xml响应

$url="http://www.tixik.com/api/nearby?lat=36.106121163930377&lng=28.07762145996093&limit=2&key=demo"; 

$xmlinfo = simplexml_load_file($url); 

print_r($xmlinfo); 

echo $xmlinfo['gps_x']; // outputs nothing 
echo $xmlinfo -> gps_x; // outputs nothing 

如何从上述响应中获得gps_x和gps_y?

回答

3

我从URL获取的内容,那么将使用异常处理,以JSON和解码JSON获取数据做:

<?php 

$myXMLData = file_get_contents("http://www.tixik.com/api/nearby?lat=36.106121163930377&lng=28.07762145996093&limit=2&key=demo"); 
$simpleXml = simplexml_load_string($myXMLData) or die("Error: Cannot create encode data to xml object"); 
$jsondata = json_encode($simpleXml) or die("Error: Cannot encode record to json"); 
$data = json_decode($jsondata, true); 
$in = $data['items']['item']; 
foreach ($in as $key => $value) { 
    echo "ID= " . $in[$key]['id'] . ", GPS-x = " . $in[$key]['gps_x'] . ", GPS-y = " . $in[$key]['gps_x']; 
    echo "<br/>"; 
} 

?> 

OUTPUT

ID = 2354292,GPS-X = 36.1065000000,GPS-Y = 36.1065000000

ID = 2431066,GPS-X = 36.0949905151,GPS-Y = 36.0949905151

如果要直接从XML取数据:

<?php 

$myXMLData = file_get_contents("http://www.tixik.com/api/nearby?lat=36.106121163930377&lng=28.07762145996093&limit=2&key=demo"); 
$simpleXml = simplexml_load_string($myXMLData) or die("Error: Cannot create encode data to xml object"); 
$in = $simpleXml->items->item; 
foreach ($in as $key) { 
    echo "ID= " . $key->id; 
    echo ", GPS-x = " . $key->gps_x; 
    echo ", GPS-y = " . $key->gps_y . "<br/>"; 
} 

?> 

OUTPUT

ID = 2354292,GPS-x = 36.1065000000,GPS-y = 28.0684000000

ID = 2431066,GPS-X = 36.0949905151,GPS-Y = 28.0860328674

2

综观print_r()输出,它表明gps_x & gps_y不直接下xmlinfo对象的项目的组成部分和。 这里是将做的工作代码:

$url = "http://www.tixik.com/api/nearby?lat=36.106121163930377&lng=28.07762145996093&limit=2&key=demo"; 

$xmlinfo = simplexml_load_file($url); 
if ($xmlinfo->items && $xmlinfo->items->item) { 
    $item = $xmlinfo->items->item; 
    print $item->gps_x . "\n"; 
    print $item->gps_y . "\n"; 
} 
1
$url="http://www.tixik.com/api/nearby?lat=36.106121163930377&lng=28.07762145996093&limit=2&key=demo"; 

$xmlinfo = simplexml_load_file($url); 

foreach ($xmlinfo->items->item as $item) { 
    //echo "<pre>";print_r($item); 
    echo "<br />". $item->gps_x; 
    echo "<br />". $item->gps_y;  
}