0

我想为 url 解析 XML: http ://www.opencellid.org/cell/get?key=myapikey&mcc=250&mnc=99&cellid=29513&lac=0

我是PHP的初学者并尝试了如下代码:

$url = " http://www.opencellid.org/cell/get?key=myapikey&mcc=250&mnc=99&cellid=29513&lac=0 ";

$xml = simplexml_load_file($url) 或 die("feed 未加载");

print_r($xml);

var_dump($xml);

我想为这个 XML url 做每个属性的回显,例如 lat、lon、range..。

我在 stackoverflow 中发现了许多 XML 非常标准的资源。我找不到用于这种 XML 格式的示例:

任何人都可以给我一个想法?谢谢。

4

3 回答 3

0

$url = " http://www.opencellid.org/cell/get?key=myapikey&mcc=250&mnc=99&cellid=29513&lac=0 ";

$xml = simplexml_load_file($url) or die("feed not loading");

$attr = array("lat", "lon"); //list attr you require

foreach($xml->cell as $cell){
    $data = $cell->attributes();

foreach ($attr as $key) {
//         echo "<br>key: $key, value: " . $data[$key];
//edit to insert
$columns[] = $key; 
$values[] = $data[$key];
}

echo $query = "insert into table_name(".implode(',',$columns).") values     (".implode(',',$values).")";
}
于 2013-03-25T09:37:41.490 回答
0

请试试这个

 $content = file_get_contents('http://www.opencellid.org/cell/get?key=myapikey&mcc=250&mnc=99&cellid=29513&lac=0');  
 $x = new SimpleXmlElement($content);  

foreach($x->cell as $entry) {  
         echo $entry['lat']."==".$entry['lon']; exit;
        }  
于 2013-03-25T09:26:40.903 回答
0
$url = "http://www.opencellid.org/cell/get?key=myapikey&mcc=250&mnc=99&cellid=29513&lac=0";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$status = curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);

if($status==200){
    $x = new SimpleXMLElement($data,LIBXML_NOCDATA);
    echo 'lat: '.$x->cell['lat'];
    echo 'lon: '.$x->cell['lon'];
    echo 'range: '.$x->cell['range'];
}

更新: 这是 curl 的替代方法。如果您安装了 curl,请使用 curl,它会更快。

$url = "http://www.opencellid.org/cell/get?key=myapikey&mcc=250&mnc=99&cellid=29513&lac=0";

$data = file_get_contents($url);
$x = new SimpleXMLElement($data,LIBXML_NOCDATA);
$lat = $x->cell['lat'];
$lng = $x->cell['lon'];
$range = $x->cell['range'];

echo 'lat: '.$lat.'<br>';
echo 'lng: '.$lng.'<br>';
echo 'range: '.$range.'<br>';
于 2013-03-25T09:29:45.163 回答