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関数」の値を取得したい。。
これに続く第二弾です。
DOM関数でXPATHを使い、
XPATH上の「count関数」や「sum関数」の値を取得するには、
evaluateメソッドを使うようです。
>DOMXPath->evaluate()
・・が、PHPのバージョン5.1以上しか対応していない旨の但し書きがありました。
5.0では、queryメソッドのみ使えるようですが、
これで、XPATHの「count関数」や「sum関数」の値を取得したい。。
その方法ですが、
まずqueryメソッドではXPATHの「count関数」や「sum関数」を引数に渡せません。
よって、queryメソッドの戻り値が配列のNodeListで返って来る事を利用し、
配列変数を操作して、結果的にXPATHの「count関数」や「sum関数」と
同じ値を取得できるようにします。
「count関数」の記述例は、
PHP:DOM関数の処理内でXPATHを使用するロジック
に記述していますので、
ここでは「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;
前の記事 次の記事