XPath エレメント名が〜でないものを取得
2008/05/03
xml
xpath
XPathを使って、エレメント名が〜でないものを取得します。
どういうことかといいますと、
<root>
<a>a1</a>
<b1>b1</b1>
<b2>b2</b2>
<b3>b3</b3>
</root>
上記のような構造のXML文書があった場合なのですが、aというエレメント名でないエレメントを取得したい場合にどうXPathを書けばいいか、考えて、ある集合から単純にaではないという集合(NodeSet)を求めればいいだろうという、結論に達したのでした。たいしたことではありませんが....
というわけで下記のようなXPathで取得できます。
*[local-name()!='a']
このlocal-name関数は、ノード集合関数であり、なにやらエレメント名を返してくれる関数のようです。
ちなみに、用語は正確に使いたいのですが、いまいちよくわかってないのが、XML。
お仕事では毎日のようにみているXMLなのですが、正確に説明しようとすると、自信がないです。
エレメント名という言い方をしました、タグとかいってしまっていいのかどうかとか...
参考
: