【问题标题】:XPath for elements with same value具有相同值的元素的 XPath
【发布时间】:2016-05-27 06:41:09
【问题描述】:

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

<MultiplyFunction>
  <Name>HeightModel</Name>
  <LinearInterpolationFunction>
    <Name>WaterStress</Name>
  </LinearInterpolationFunction>
</MultiplyFunction>
<MultiplyFunction>
  <Name>ExtinctionCoeff</Name>
  <LinearInterpolationFunction>
    <Name>WaterStress</Name>
  </LinearInterpolationFunction>
</MultiplyFunction>

我想构建一个 xpath 来查找第二个元素 &lt;Name&gt;WaterStress&lt;/Name&gt;。此元素的唯一关键字是 ExtinctionCoeffWaterStress

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

【问题讨论】:

  • 我认为//Name[text()="WaterStress"][2] 会起作用
  • //MultiplyFunction[Name="ExtinctionCoeff"]/LinearInterpolationFunction/Name[text()="WaterStress"]
  • 感谢所有帮助。 @splash58 你的代码对我有用。您能否添加作为答案,然后我可以接受它。
  • @Bangyou 我做到了。祝你好运!

标签: xml xpath


【解决方案1】:

这个 Xpath 找到名称为 ExtinctionCoeff 的 firat MultiplyFunction,然后找到带有 bane WaterStress 的内部 LinearInterpolationFunction。为了便于阅读,我将 Xpath 拆分为 2 行

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

【讨论】:

    【解决方案2】:

    试试下面的表达式。 //MultiplyFunction[((descendant::LinearInterpolationFunction/Name[text()="WaterStress"]) and (descendant::Name[text()="ExtinctionCoeff"] ))]

    它将返回匹配的标签。

    【讨论】:

      【解决方案3】:

      这里有一些其他选项

      //MultiplyFunction[2]/LinearInterpolationFunction/Name
      
      //MultiplyFunction[2]//Name[text()="WaterStress"]
      
      //Name[text()="ExtinctionCoeff"]/following-sibling::LinearInterpolationFunction/Name
      
      //Name[text()="ExtinctionCoeff"]/../Name

      【讨论】:

        【解决方案4】:

        我认为以下内容应该适合您...

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-23
          • 2014-09-05
          • 1970-01-01
          • 2022-01-03
          • 1970-01-01
          • 2019-08-06
          相关资源
          最近更新 更多