XPATH选择所有非空的节点

时间:2015-07-16 18:33:07

标签: xml xpath

如何选择具有某些值并且不为空的所有节点?例如,我有以下XML:

    <bbb>
        <aaa/>
        <bbb/>
        <ccc>23</ccc>
        <ddd/>
        <eee>Health</eee>
        <fff/>
    </bbb>

这里我想选择那些bbb子节点并且有一些值的节点,即节点ccc和eee。

3 个答案:

答案 0 :(得分:3)

  

选择那些bbb子节点并具有一些值的节点

如果要包含仅包含空格的节点,请尝试:

/bbb/*[string()]

如果要忽略仅包含空格(<x> </x>)的节点,请尝试:

/bbb/*[normalize-space()]

答案 1 :(得分:3)

这应该有效:

/bbb/*[.!='']

bbb的所有子项,其值不为空。

答案 2 :(得分:1)

仅在具有文本值的情况下获取所有节点:

/bbb/*[text()]