假设我们有这个xml文件。

<measurements>
  <ms date="2011-05-01">
    <TempMin unit="°C">12.4</TempMin>
    <TempMax unit="°C">18.2</TempMax>
  </ms>
  <ms date="2011-05-02">
    <TempMin unit="°C">19.4</TempMin>
    <TempMax unit="°C">24.2</TempMax>
  </ms>
  <ms date="2011-05-03">
    <TempMin unit="°C">9.4</TempMin>
    <TempMax unit="°C">12.2</TempMax>
  </ms>
</measurements>

我想得到平均温度最高的ms元素-tempavg是(tempmin+tempmax)/2。我该怎么做?
我认为我的问题是,我不知道如何获得后面/前面兄弟姐妹的派生(计算)值。这可能吗?

最佳答案

使用xpath 2.0是可能的,但解决方案必须很复杂:

/measurements/ms[(number(TempMax/number(text()) + TempMin/number(text())) div 2) =
        /measurements/max(ms/(number(TempMax/number(text()) + TempMin/number(text())) div 2))]

对于xpath 1.0可能不是-它包含一个非常小的函数列表

10-04 23:02