Как уже упоминалось в комментариях, у вас есть две проблемы:
- пустые значения;
- значения, содержащие запятую в качестве десятичного разделителя.
В XSLT2.0 вы можете решить обе проблемы, используя следующее выражение:
sum(/Top/Lines/Line[string(@Quantity)]/number(translate(@Quantity, ',', '.')))
Предикат [string(@Quantity)]
исключает Line
s с пустым атрибутом Quantity
, а выражение number(translate(@Quantity, ',', '.'))
преобразует остальныена действительные номера.