2008年12月17日 00:42

PHP5 simpleXML 動作テスト pert3

| http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/423

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

インスタンス作成

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

サンプルコード


$xml = "/sample/xml/sitemap/sitemap.xml";
$sitemap = new SimpleXMLElement($xml, null, true);

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

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

サンプルコード


$pear = $sitemap->root->web->library->pear;
echo $pear->getName();

実行結果

pear

子要素にアクセス

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

サンプルコード


$pager = $pear->xpath("package/pager");
echo $pager[0]->getName() . "<br />";
echo $pager[0]["name"] . "<br />"";
echo $pager[0]["d"];

実行結果

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

子孫にアクセス

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

サンプルコード


$package_files = $pear->xpath("package//files");

var_dump(count($package_files));

foreach ($package_files as $values) {

    foreach ($values->children() as $value) {

       echo $value->getName() . "<br />";
       echo $value["name"] . "<br />";
       echo $value["d"] . "<br />"";
    }
}

実行結果

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 の属性にアクセスする。

サンプルコード


$validate_atributes = $pear->xpath("package/validate/@*");

foreach ($validate_atributes as $attribute) {
    foreach ($attribute as $key => $value) {
        echo $key . " : " . $value . "<br />";
    }
}

実行結果

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

親要素にアクセス

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

サンプルコード


$libraries = $pear->xpath("..");

echo $libraries[0]->getName() . "<br />";
echo $libraries[0]["name"] . "<br />";
echo $libraries[0]["d"];

実行結果

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

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

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

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

PHP5 simpleXML 動作テスト pert3タグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/423
[WEBプログラム覚書]2009年01月13日 13:53
PHP5 simpleXML 動作確認 pert2
simpleXMLを利用してXMLファイルの作成などを簡単におこなう。
[WEBプログラム覚書]2009年01月13日 13:54
PHP5 simpleXML 動作テスト pert1
php5になるとXMLが簡単に扱えるようsimpleXMLが利用できるようなので動作テストをしてみた。
[WEBプログラム覚書]2009年04月17日 21:13
SimpleXMLメモ
SimpleXMLでCDATAや名前付きの要素を取得する方法
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?


先月アクセスが多かったページ