仅使用XPath在其他父级下使用名称查找XML元素

时间:2018-01-31 08:36:42

标签: xml xpath

我需要从XML表中获取一个值,该值依赖于其名称,该表具有不同的父节点。在下面的示例中,让我们说我想提取" b"的值,即2.如何使用XML结构动态获取基于其名称的值,如下所示只有XPaths?我无法控制传入XML的格式,而且我阅读它的功能有限,这就是为什么我想在可能的情况下坚持使用XPath。

<Data>
    <Names>
        <Name>a</Name>
        <Name>b</Name>
        <Name>c</Name>
        <Name>d</Name>
    </Names>
    <Values>
        <Value>1</Value>
        <Value>2</Value>
        <Value>3</Value>
        <Value>4</Value>
    </Values>
</Data>

1 个答案:

答案 0 :(得分:1)

找到所需的节点Name,在之前计算节点Name并在同一位置获取Value

/Data/Values/Value[position() = count(/Data/Names/Name[.="b"]/preceding-sibling::Name)+1]