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

PHP5 simpleXML 動作テスト part3

simpleXMLではxPathを利用してノードにアクセスできるようなので試してみるよ。

インスタンス作成

例によって使用XMLファイルはこのサイトのサイトマップ

サンプルコード

PHP

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

xPathを利用してノードにアクセス

$sitemapのノードにxPathを利用してアクセスするには xpath(string $path) を利用する。 カレントは /directories/root/web/library/pear とする。

サンプルコード

PHP

  1. <?php
  2. $pear = $sitemap->root->web->library->pear;
  3. echo $pear->getName();
  4. ?>

実行結果

pear

子要素にアクセス

pear/package/pager にアクセスする。

サンプルコード

PHP

  1. <?php
  2. $pager = $pear->xpath("package/pager");
  3. echo $pager[0]->getName() . "<br />";
  4. echo $pager[0]["name"] . "<br />"";
  5. echo $pager[0]["d"];
  6. ?>

実行結果

pager
PEAR::pager
ページングナビゲーションを提供するPEAR::Pagerの概要

子孫にアクセス

//も利用できる。package以下のfilesを取得。files数分の配列が返る。

サンプルコード

PHP

  1. <?php
  2. $package_files = $pear->xpath("package//files");
  3.  
  4. var_dump(count($package_files));
  5.  
  6. foreach ($package_files as $values) {
  7.  
  8.     foreach ($values->children() as $value) {
  9.  
  10.        echo $value->getName() . "<br />";
  11.        echo $value["name"] . "<br />";
  12.        echo $value["d"] . "<br />"";
  13.    }
  14. }
  15. ?>

実行結果

int(5) index.php
一覧
便利なPEARパッケージの紹介と動作サンプル
index.php
概要
ページングナビゲーションを提供するPEAR::Pagerの概要
sample.php
動作サンプル
PEAR::pagerの動作サンプル
index.php
概要
バリデート機能を提供するPEAR::Validateの概要
email.php
メールアドレスチェック
様々なデータ形式の妥当性をチェックするPEAR::Validate。email()メソッドの紹介
number.php
数値チェック
様々なデータ形式の妥当性をチェックするPEAR::Validate。number()メソッドの紹介
uri.php
URIチェック
様々なデータ形式の妥当性をチェックするPEAR::Validate。uri()メソッドの紹介
index.php
概要
ディレクトリのファイルをパターンで検索したり、ディレクトリマップを作成出来る便利なライブラリPEAR::File_Findの紹介
glob.php
glob()
ディレクトリを走査するPEAR::File_Findのglob()メソッドのテスト
maptree.php
maptree()
ディレクトリを走査するPEAR::File_Findのmaptree()メソッドのテスト
maptreemultiple.php
maptreemultiple()
ディレクトリを走査するPEAR::File_Findのmaptreemultiple()メソッドのテスト
search.php
search()
ディレクトリを走査するPEAR::File_Findのsearch()メソッドのテスト
index.php
概要
アクセス元のOSやブラウザを判定してくれるPEAR::Net_UserAgent_Detect 概要
sample.php
動作サンプル
OSやブラウザの判定を行えるPEAR::Net_UserAgent_Detectの動作サンプル

属性にアクセス

pear/package/validate の属性にアクセスする。

サンプルコード

PHP

  1. <?php
  2. $validate_atributes = $pear->xpath("package/validate/@*");
  3.  
  4. foreach ($validate_atributes as $attribute) {
  5.     foreach ($attribute as $key => $value) {
  6.         echo $key . " : " . $value . "<br />";
  7.     }
  8. }
  9. ?>

実行結果

name : PEAR::Validate
d : バリデート機能を提供するPEAR::Validateの概要

親要素にアクセス

pearの親要素であるlibraryにアクセスする。

サンプルコード

PHP

  1. <?php
  2. $libraries = $pear->xpath("..");
  3.  
  4. echo $libraries[0]->getName() . "<br />";
  5. echo $libraries[0]["name"] . "<br />";
  6. echo $libraries[0]["d"];
  7. ?>

実行結果

library
ライブラリ
WEBサイト制作に欠かせない便利なライブラリの紹介

xPathを利用して色々な要素に簡単にアクセスできますが注意点としては

  • xPath全て利用できるわけではない
  • xPathでの指定はめっさ遅いらしい

とのことです。詳しくはPHP での SimpleXML 処理を参照。

投稿日 2008年12月17日 00:42
カテゴリ PHP
タグ テストコード | 動作確認 | 関数
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1154

コメント

コメントする
Name
Email Address
URL