一个相当简单的问题...... XML片段:
<bean id='Juicer'>
<property name="electric">
<value>false</value>
</property>
</bean>
<bean id='Oven'>
<property name="electric">
<value>true</value>
</property>
<property name="wattage">
<value>1000</value>
</property>
</bean>
我正在尝试编写一个xpath查询,该查询将选择没有bean
的所有<property name="wattage">
。
我无法弄清楚如何在xpath中说“没有这个孩子的豆子”。
请注意,每次“瓦数”不存在时,我都不能依赖“电”属性。 (另外,这个例子有点人为)。
谢谢:)
答案 0 :(得分:6)
好的,经过一番挖掘,我发现了它:
//bean[not (property[@name='wattage'])]
确实很简单:P
答案 1 :(得分:4)
尝试
//bean[not(property[@name='wattage'])]
答案 2 :(得分:2)
如果当前节点是bean
元素的父元素,则选择所需元素的一个XPath表达式为:
bean[not(property/@name = 'wattage')]
这可能是最简单的表达式(只有一个谓词)。
这个用英文翻译的表达说:
选择当前节点的所有bean
子节点,其name
个子节点的property
属性不是字符串"wattage"
。
答案 3 :(得分:0)
//bean[not(@name = 'wattage')]