代码之家  ›  专栏  ›  技术社区  ›  jrharshath

如何选择没有特定子节点的节点?

  •  6
  • jrharshath  · 技术社区  · 15 年前

    一个相当简单的问题。。。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>
    

    bean <property name="wattage"> .

    我不知道如何在xpath中说“beans没有这个孩子”。

    请注意,我不能指望“电力”属性在每次“瓦数”不存在时都是假的。(同样,这个例子有点做作)。

    谢谢:)

    4 回复  |  直到 15 年前
        1
  •  6
  •   jrharshath    15 年前

    好吧,经过一番挖掘我发现了:

    //bean[not (property[@name='wattage'])]
    

        2
  •  4
  •   GôTô    15 年前

    尝试

    //bean[not(property[@name='wattage'])]
    
        3
  •  2
  •   Dimitre Novatchev    15 年前

    如果当前节点是 bean 元素,一个选择所需元素的XPath表达式是 :

    bean[not(property/@name = 'wattage')]
    

    这可能是最简单的表达方式

    全选 name 他们的任何一个 property 孩子是绳子 "wattage"

        4
  •  0
  •   Artjom B.    11 年前
    //bean[not(@name = 'wattage')]