XPATH Expression - сравнить производные значения - PullRequest
3 голосов
/ 02 ноября 2011

Предположим, у нас есть этот 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. Как я могу это сделать?

Я думаю, что моя проблема в том, что я не знаю, как получить производное (вычисленное) значение следующих / предшествующих братьев и сестер. Это вообще возможно?

1 Ответ

0 голосов
/ 15 ноября 2011

Это возможно с 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, вероятно, нет - он содержит очень маленький список функций

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...