2007/08/21

Axis2のAXIOMでXPATHのはまりどころ



1111
2222



これがOMElementのelementに格納されていてaa要素すべてを取得する場合
普通は以下のように思うはず
AXOMXPath xp = new AXOMXPath("//aa");
List lstOmeAA = xp.selectNodes(element);

だがこれだと取得できず。
なぜなら暗黙のプレフィックスが存在していてxpath式の「aa」という要素名は存在しない。
じゃあどのように取得するのかというと

AXOMXPath xp = new AXOMXPath("//xs:aa");
xp.addNamespace("xs", "http://sample.org");
List lstOmeAA = xp.selectNodes(element);

てな感じ。
どこにもかいとらんよ。こんなの。
でもPHP4のXPATH関連の関数使ったときもこれとおんなじ挙動だった。
もしかしてXPATH関連の関数ワールドではあたりまえ?

0 件のコメント: