在xpath中查找不等于字符串的元素

时间:2015-09-15 06:58:00

标签: xml xpath

需要帮助来查找不等于字符串的元素,这是我的XML:

<collection >
<device>
    <name>Test</name>
    <dcs>
        <dc>
            <nodes>
                <node>
                    <name>Host1</name>
                </node>
                <node>
                    <name>test</name>
                </node>
                <node>
                    <name>testing</name>
                </node>
            </nodes>
        </dc>
        <dc>
            <nodes>
                <node>
                    <name>test</name>
                </node>
                <node>
                    <name>testing</name>
                </node>
            </nodes>
        </dc>
    </dcs>
</device>

XPath我试过了:

/collection/device/dcs/dc/nodes/node[not(contains(name,'test'))]

O / P:

 <node>
    <name>Host1</name>
</node>

预期的O / p:

<node>
      <name>Host1</name>
</node>
<node>
      <name>testing</name>
</node>

实际输出也忽略了测试,但我需要输出。 任何人都可以帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

要过滤掉内部文本正好等于某个值的节点,请使用=包裹的not()运算符,而不是以相同的方式使用contains()

/collection/device/dcs/dc/nodes/node[not(name='test')]