2009-06-17 80 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> 

我想建立一個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引擎的問題。人力資源管理。 – 2009-06-17 23:22:36

0

你確定你沒有命名空間的問題與你的XPath?

+0

不要這樣想;我認爲這是IBM的BIRT報告工具的問題,而不是XPath查詢。如果我將查詢從「./foo[contains(bar/@type,'MUPPET')]/value/text()」更改爲「。」我仍然一無所獲。當然「。」應該匹配_something _... – 2009-06-17 23:27:17