我怀疑是否有办法使用xpath从xml文档中获取具有特定值(文本)的元素。
<domain log-root="/logs" application-root="/applications"><resources>
<jdbc-resource pool-name="SamplePool" jndi-name="jdbc/sample" />
<jdbc-resource pool-name="TimerPool" jndi-name="abc">text1</jdbc-resource>
<jdbc-resource pool-name="TimerPool" jndi-name="def">text2</jdbc-resource>
<jdbc-resource pool-name="TimerPool" jndi-name="ghi">text3</jdbc-resource></resources</domain>
/domain//jdbc-resource[@pool-name='TimerPool']/text()='text2'
如果有任何想法,请发表您的想法。
答案 0 :(得分:3)
使用强>:
/domain/*/jdbc-resource[@pool-name='TimerPool' and .='text2']
或者您可以使用:
/domain/*/jdbc-resource[@pool-name='TimerPool'][.='text2']
上述两个表达式选择所有jdbc-resource
个元素,其pool-name
属性为"TimerPoool"
且其字符串值(jdbc-resource
元素)的字符串值为{{1}这是XML文档顶级元素的孙子。
答案 1 :(得分:-1)
好吧,text()应该这样做。 http://www.w3schools.com/xpath/xpath_examples.asp
你有没试过吗?另外,检查路径,它可能是
//jdbc-resource[@pool-name='TimerPool']/text()='text2'
或
/domain/resource/jdbc-resource[@pool-name='TimerPool']/text()='text2'
或
//resource/jdbc-resource[@pool-name='TimerPool']/text()='text2'