簡體   English   中英

如何使用PHP解析此XML?

[英]How to parse this XML using PHP?

我想解析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 not loading”)

print_r($ xml);

var_dump($ xml);

我想對此XML網址的每個屬性執行回顯,例如lat,lon,range..。

我在stackoverflow中發現了很多標准的XML資源。 我找不到用於此XML格式的示例:

有人可以給我個主意嗎? 謝謝。

請嘗試這個

 $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;
        }  
$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的替代方法。 如果已安裝卷曲,請使用卷曲,這樣會更快。

$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>';

$ 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).")";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM