2009-06-17 13 views
5

私は次のXMLを持っています:XPathの属性値の一致でワイルドカードを使用するにはどうすればよいですか?

<root> 
    <foo> 
    <bar type="a whole bunch of stuff, then a magic string: MUPPET" /> 
    <value>my Muppet value</value> 
    </foo> 
    <foo> 
    <bar type="some other stuff, then a different magic string: GREMLIN" /> 
    <value>my Gremlin value</value> 
    </foo> 
</root> 

魔法の文字列 "MUPPET"を与えられた "私のMuppet値"(文字列)を返すXPathクエリを作成したいと思います。私の推測でした:

/root/foo[contains(bar/@type,'MUPPET')]/value/text() 

しかし、それは動作していないようです。 contains(x,y)演算子が最初のパラメータとしてクエリを許可するかどうかは本当に分かりません。副次的な問題として、私は最後にtext()が必要かどうかはわかりません。

助けてください?

答えて

5

私はちょうどこのオンラインXPATH評価基準でチェックし、それが正常に動作している:

http://www.mizar.dk/XPath/Default.aspx

+0

あなたは完全です。彼らは確かにします!そしてそれは/ text()についての私の質問にも答えます。 EclipseのIBMのXPathエンジンに関する問題である必要があります。 Hrm。 –

0

は、あなたがあなたのXPathで名前空間の問題を持っていませんか?

+0

そうは思わない。私はそれがIBMのBIRT報告ツールの問題であり、XPathクエリではないと思います。クエリを "./foo[contains(bar/@type,'MUPPET ')]/value/text()"から "。"に変更すると、私はまだ何も得ていない。確かに "。" _something _..と一致する必要があります。 –

関連する問題