KANTENNA.COM

Solarized

HOME > WEBプログラム覚書 > PHP5 simpleXML 動作テスト part1

PHP5 simpleXML 動作テスト part1

php5になるとXMLが簡単に扱えるようsimpleXMLが利用できるようなので 動作テスト。

SimpleXMLElement インスタンス作成

まずはSimpleXMLElementのインスタンスを作成。 ファイルを読み込む場合は第三引数にtrueを指定する。

使うXMLはこのサイトのサイトマップ

サンプルコード

PHP
  1.  <?php
  2.  $xml = "/sample/xml/sitemap/sitemap.xml";
  3.  $sitemap = new SimpleXMLElement($xml, null, true);
  4.  ?>

ノードの取得

この場合ルートノードであるdirectoriesが参照されている

サンプルコード

PHP
  1.  <?php
  2.  echo $sitemap->getName() . "<br />";
  3.  ?>

実行結果

directories

directoriesの子要素であるrootにアクセスするには

サンプルコード

PHP
  1.  <?php
  2.  echo $sitemap->root[0]->getName() . "<br />";
  3.  echo $sitemap->children()->getName() . "<br />";
  4.  ?>

実行結果

root
root

となる。下記のようにするとわかりやすい。 children()の返り値は配列のような感じになるので

サンプルコード

PHP
  1.  <?php
  2.  $second = $sitemap->children();
  3.  echo $second[0]->getName() . "<br />";
  4.  echo $second[0]["name"] . "<br />";
  5.  echo $second[0]["k"] . "<br />";
  6.  echo $second[0]["d"] . "<br />";
  7.  ?>

実行結果

root
WEBデザイン・ホームページ制作 KANTENA
WEB,WEBデザイン,HTML,ホームページ製作,WEBサイト製作,CSSハック,スクリプト,アプリケーション
ホームページ製作やWEBデザイン、WEBサイト製作に必要な知識や便利なアプリケーション、スクリプトの紹介

となる。複数の要素を持つ場合は下記のようにできる。 rootしかなくつまらないのでrootの子要素で試す。

サンプルコード

PHP
  1.  <?php
  2.  $third = $second->children();
  3.  
  4.  foreach ($third as $child) {
  5.   echo "[" . $child->getName() . "]<br />";
  6.   echo $child["name"] . "<br />";
  7.   echo $child["d""] . "<br />";
  8.  }
  9.  ?>

実行結果

[files]


[web]
WEBデザイン・制作
ホームページ製作やWEBデザイン、WEBサイト製作に必要な知識や便利なアプリケーション、スクリプトの紹介
[app]
アプリケーション
WEBサイト制作、WEBサイト開発役立つにアプリケーションの紹介
[service]
WEB制作・構築関連サービス
ホスティングサービス・レンタルサーバー・メール配信・ASP・アクセスアップ・ホームページ製作・ビジネスブログ・SEO対策・SEM対策などWEBに関係するサービスのご紹介
[pg]
プログラム覚書
PHP、MySQL、JavaScript、XMLに関する覚書。自分用メモなど
[info]
情報備忘録
気になる情報のメモ
[contact]
お問合せフォーム
kanntenna.comへのお問い合わせ、連絡、苦情などはこちら

属性の名前が不明な場合、attributes()を利用する。

サンプルコード

PHP
  1.  <?php
  2.  foreach ($sitemap->children() as $child) {
  3.   echo "[" . $child->getName() . "]<br />";
  4.  
  5.   $attributes = $child->attributes();
  6.   foreach ($attributes as $name => $value) {
  7.   echo $name . " : " . $value . "<br />";
  8.   }
  9.  }
  10.  ?>

実行結果

[root]
name : WEBデザイン・ホームページ制作 KANTENA
k : WEB,WEBデザイン,HTML,ホームページ製作,WEBサイト製作,CSSハック,スクリプト,アプリケーション
d : ホームページ製作やWEBデザイン、WEBサイト製作に必要な知識や便利なアプリケーション、スクリプトの紹介
プログラミングPHP 第2版
作者:Peter MacIntyre | 価格:¥ 3,990

トラックバック(4)

2009年1月13日 13:52

PHP5 simpleXML 動作テスト pert3WEBプログラム覚書

simpleXMLとxPathを利用したXMLのノードへのアクセス方法続きを読む

2009年1月13日 13:53

PHP5 simpleXML 動作確認 pert2WEBプログラム覚書

simpleXMLを利用してXMLファイルの作成などを簡単におこなう。続きを読む

2009年4月17日 21:14

SimpleXMLメモWEBプログラム覚書

SimpleXMLでCDATAや名前付きの要素を取得する方法続きを読む

2010年3月16日 04:57

[PHP] スクレイピング 基本WEBプログラム覚書

PHP、tidyとSimpleXMLでスクレイピングの練習。続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。

2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。