スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

XPathでテキストノードの検索

最近XPathを書いてなかったので、だいぶ忘れてた・・・
属性で検索する方法はネットで簡単にみつかるけど、テキストノードで検索する方法はなかなかありませんでした。
私がXML設計するとほとんどテキストノードで構成しちゃうんで、属性あんまりつかわないんですよ。
ということで、まずXMLのサンプルです。

<items>
<item>
<key>abc</key>
<value>123</value>
</item>
<item>
<key>efg</key>
<value>456</value>
</item>
</items>

ここで、keyが"abc"となっているitemのvalueの値を求めること考えます。
XPathは以下の通り

/items/item/key[.='abc']/../value

ついでにPHPで動かすと以下のようになります。
<?php
$str = <<<EOS
<items>

<item>
<key>abc</key>
<value>123</value>
</item>
<item>
<key>efg</key>
<value>456</value>
</item>
</items>
EOS;
$xml = simplexml_load_string($str);
$xpath = "/items/item/key[.='abc']/../value";
$result = (string)$xml->xpath($xpath);
echo $result;
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。