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( "フィードがロードされていません");

print_r($ xml);

var_dump($ xml);

このXMLURLのlat、lon、rangeなどの属性ごとにエコーを実行したいと思います。

XMLが非常に標準的なstackoverflowで多くのリソースを見つけました。この形式のXMLに使用される例が見つかりません。

誰かが私にアイデアを与えることができますか?ありがとう。

4

3 に答える 3

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 に答える
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 に答える