サードパーティのソフトウェアからいくつかの出力があります:
ソフトウェアからのサンプル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>
そして、 testsuite要素のtime属性を除いて、ほとんどそこに到達しました。合計を取得する代わりに、NaNを取得しています。これを取得するために使用しているXPath式はsum(// testsuite / @ time)です。
すべての時間が1000未満の場合、エラーは発生しないことに注意してください。これは、XSLTがコンマを検出したときに数値を解析しないことが原因である可能性があります。(サードパーティのソフトウェアからのものであるため、入力からこれらのコンマを取り除くことはできません。)
では、これらの値を時間で合計するにはどうすればよいですか?その場でコンマを削除できるようにsum(// testsuite / @ time)を変更する方法はありますか?
ありがとう!