Суммируйте узлы, где данные могут быть пустыми, и, если так, установите значение по умолчанию - PullRequest
0 голосов
/ 14 февраля 2019

Рассмотрим этот XML

Я хочу суммировать все значения в Количество, и для тех строк, в которых отсутствует значение, я хочу использовать значение по умолчанию 1,00

Я ранее задавал вопроспропуск строк без количества ( Необходимо суммировать узлы, где данные могут быть пустыми ).

Получил отличный ответ для использования

sum(/Top/Lines/Line[string(@Quantity)]/number(translate(@Quantity, ',', '.')))

Как настроить кодвыше, чтобы соответствовать моим новым требованиям?

Спасибо

/ M

<Top>
 <Lines>
   <Line ID="1" Quantity="1,00" />
   <Line ID="2" Quantity="11,00" />
   <Line ID="3" Quantity="" />
   <Line ID="4" Quantity="" />
   <Line ID="5" Quantity="10,00" />
 </Lines>
</Top>

1 Ответ

0 голосов
/ 14 февраля 2019

Предполагая, что вы все еще используете XPath / XSLT 2.0, вы можете сделать следующее:

sum(/Top/Lines/Line/(if (string(@Quantity)) then number(translate(@Quantity, ',', '.')) else 1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...