Необходимо суммировать узлы, где данные могут быть пустыми - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть следующий XML:

Я хочу суммировать все значения в Количество, хотя некоторые из них могут полностью пропустить значения.Как я могу это сделать.Все, что я пытаюсь привести к NaN

/ 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 голосов
/ 13 февраля 2019

Как уже упоминалось в комментариях, у вас есть две проблемы:

  • пустые значения;
  • значения, содержащие запятую в качестве десятичного разделителя.

В XSLT2.0 вы можете решить обе проблемы, используя следующее выражение:

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

Предикат [string(@Quantity)] исключает Line s с пустым атрибутом Quantity, а выражение number(translate(@Quantity, ',', '.')) преобразует остальныена действительные номера.

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