У меня есть вывод из стороннего программного обеспечения:
Пример XML из программного обеспечения:
<testsuite name="XYZ">
<testcase name="ABC" status="0" time="12.001">Some stuff</testcase>
<testcase name="DEF" status="0" time="12,345.001">Some stuff</testcase>
<testcase name="GHI" status="0" time="4,321.001">Some stuff</testcase>
</testsuite>
Мне нужно написать XSLT, который преобразует это в следующее:
<testsuite name="XYZ" time="16678.003">
<testcase name="ABC" time="12.001">Some stuff</testcase>
<testcase name="DEF" time="12,345.001">Some stuff</testcase>
<testcase name="GHI" time="4,321.001">Some stuff</testcase>
</testsuite>
И я почти достиг этого, за исключением атрибута time элемента testsuite . Вместо того, чтобы получить сумму, я получаю NaN .
Выражение XPath, которое я использую, чтобы получить это сумма (// testsuite / @ time)
Обратите внимание, что ошибка не возникает, когда все время <1000. Возможно, это связано с тем, что XSLT не анализирует число, когда встречает запятые. (Я не могу избавиться от этих запятых на входе, потому что он исходит от стороннего программного обеспечения.) </p>
Так как мне сложить эти значения за время? Можно ли изменить сумму (// testsuite / @ time) таким образом, чтобы она могла разделять запятые на лету?
Спасибо!