PHPで名前空間プレフィックスのあるXMLデータを扱う例

XMLデータに名前空間プレフィックスを使用している場合にPHPでアクセスできるようにするには、前の記事「PHPで名前空間プレフィックスを扱う例」で書いた方法以外にもプレフィックスの名前を変更して使用する方法もあります。

下のコードは、livedoor天気APIで利用する全国の地点定義表(RSS)から地域名とidを取得(表示)するコードです。

内容は、file_get_contents関数でファイルの文字列を取得して、str_replace関数でプレフィックスを使用している箇所の文字を変更したあと、simplexml_load_string関数でxml形式の文字列をオブジェクトにしています。

$xml = file_get_contents($base_url);
$xml = str_replace('ldWeather:source', 'ldWeathersource', $xml);
$xml = simplexml_load_string($xml);

$xml = $xml->channel->ldWeathersource->children();

foreach( $xml as $pref ) {
  foreach( $pref->children() as $pchild ) {
    if( $pchild->getName() == 'city' ) {
      echo $pchild->attributes()->title;
      echo $pchild->attributes()->id . '<br />';
    }
  }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です