2011-11-02 65 views
3

假设我们有这个XML文件。XPATH表达式 - 比较派生值

<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> 

我想获得最高平均温度毫秒元素 - TempAvg是(TempMin + TempMax)/ 2。我怎样才能做到这一点?

我认为我的问题是,我不知道如何获得以下/前面的兄弟姐妹的派生(计算)值。这甚至有可能吗?

+0

您可以使用XQuery一个非常小的名单?这将更容易。 –

+0

不幸的是没有。 – Spiegelritter

+0

是(可以)你使用任何programmin语言? –

回答

0

可以使用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中可能没有 - 它包含的功能