具有相同值的元素的XPath

时间:2016-05-27 06:41:10

标签: xml xpath

我有一个xml文档,其中包含这样的部分。

<div id="Test_topic" ><a href="<link>">Test Spec</a>

我想构建一个xpath来查找第二个元素<MultiplyFunction> <Name>HeightModel</Name> <LinearInterpolationFunction> <Name>WaterStress</Name> </LinearInterpolationFunction> </MultiplyFunction> <MultiplyFunction> <Name>ExtinctionCoeff</Name> <LinearInterpolationFunction> <Name>WaterStress</Name> </LinearInterpolationFunction> </MultiplyFunction> 。此元素的唯一关键字为<Name>WaterStress</Name>ExtinctionCoeff

我当前的xpath是WaterStress,它可以找到这两个元素。如何通过添加关键字//Name[text()="WaterStress"]来指定第二个?

4 个答案:

答案 0 :(得分:1)

我认为以下内容对你有用......

//Name[text()="WaterStress" and ../preceding-sibling::Name='ExtinctionCoeff']

答案 1 :(得分:1)

尝试以下表达式。 // MultiplyFunction [((descendant :: LinearInterpolationFunction / Name [text()=&#34; WaterStress&#34;])和(descendant :: Name [text()=&#34; ExtinctionCoeff&#34;]))]

它将返回匹配的标记。

答案 2 :(得分:1)

以下是其他一些选项

//MultiplyFunction[2]/LinearInterpolationFunction/Name

//MultiplyFunction[2]//Name[text()="WaterStress"]

//Name[text()="ExtinctionCoeff"]/following-sibling::LinearInterpolationFunction/Name

//Name[text()="ExtinctionCoeff"]/../Name

答案 3 :(得分:1)

此Xpath找到名为ExtinctionCoeff的firat MultiplyFunction,然后找到带有Bane WaterStress的内部LinearInterpolationFunction。我将Xpath拆分为2行以便于阅读

//MultiplyFunction[Name="ExtinctionCoeff"]
/LinearInterpolationFunction/Name[tex‌​t()="WaterStress"]