【问题标题】:How can I select sibling nodes in XML using XPath?如何使用 XPath 在 XML 中选择兄弟节点?
【发布时间】:2011-07-07 19:59:35
【问题描述】:

假设以下 XML:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <info>
        <code>
            ABC
        </code>
        <desc>
            A
        </desc>
    </info>
    <info>
        <code>
            DEF
        </code>
        <desc>
            A
        </desc>
    </info>
    <info>
        <code>
            XYZ
        </code>
        <desc>
            B
        </desc>
    </info>
</root>

如何选择所有desc 值为“A”的code 元素?

我尝试了以下 XPath,但它什么也没给我:

/root/info[desc='A']

【问题讨论】:

    标签: xml xpath


    【解决方案1】:

    就像@Jim Garrison 所说,您需要在&lt;desc&gt; 上使用normalize-space(),但您几乎可以通过添加/code(和normalize-space())保留xpath

    /root/info[normalize-space(desc)='A']/code
    

    【讨论】:

      【解决方案2】:

      试试这个:

      /root/info/code[normalize-space(../desc/text())='A']
      

      即告诉它你想要哪些节点(/root/info/code),按条件过滤。您需要normalize-space(),因为源文档中的值两边都有空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-24
        • 1970-01-01
        • 2018-08-06
        • 2014-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多