Web Artisan Blog - ウェブ アルチザン ブログ

PHP:DOM関数の処理内でXPATHを使用するロジック(queryメソッドでcountやsumの値を取得)

PHP (55 items)

2005年06月06日

>PHP:DOM関数の処理内でXPATHを使用するロジック
これに続く第二弾です。

DOM関数でXPATHを使い、
XPATH上の「count関数」や「sum関数」の値を取得するには、
evaluateメソッドを使うようです。
>DOMXPath->evaluate()

・・が、PHPのバージョン5.1以上しか対応していない旨の但し書きがありました。
5.0では、queryメソッドのみ使えるようですが、
これで、XPATHの「count関数」や「sum関数」の値を取得したい。。
その方法ですが、
まずqueryメソッドではXPATHの「count関数」や「sum関数」を引数に渡せません。

  $query = 'sum(/test/log/count)';
  $ResultNode = $xpath->query($query);



よって、queryメソッドの戻り値が配列のNodeListで返って来る事を利用し、
配列変数を操作して、結果的にXPATHの「count関数」や「sum関数」と
同じ値を取得できるようにします。

「count関数」の記述例は、
PHP:DOM関数の処理内でXPATHを使用するロジック
に記述していますので、
ここでは「sum関数」の記述例を記します。

■記述例・・test.xml内のlogノードの子ノード”countノード”の合計を出力
  $dom = new DOMDocument;
  $dom->load("test.xml");
  $xpath = new DOMXPath($dom);
  $query = '/test/log/count';
  $ResultNode = $xpath->query($query);
  foreach ($ResultNode as $Node) {
    $total = $total + $Node->nodeValue;
  }
  //countノードの合計を出力
  echo $total;


前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=486