2011-11-02 89 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中可能沒有 - 它包含的功能