在此代码挑战中,我必须创建一个XSLT转换,它将对所有TestResut节点的迭代持续时间求和。简而言之,TestResults运行了多长时间。
<TestResults>
<TestResult>
<Iteration duration="00:00:02.6312623" />
<Iteration duration="00:01:03.5725194" />
<Iteration duration="00:00:07.5725194" />
</TestResult>
<TestResult>
<Iteration duration="00:00:04.6312623" />
<Iteration duration="00:01:03.6777194" />
<Iteration duration="00:02:07.5723194" />
</TestResult>
</TestResults>
无法直接在TestResults / TestResult / Iteration / @ duration xpath上完成求和,而是在此处需要转换表示时间的刻度,我要问:在同一时间总结所有持续时间的最佳做法是什么多次转换?
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="TotalDuration" select="sum(TestResults/TestResult/Iteration/@duration)"/>
<Summary>
<Duration>
<xsl:value-of select="$TotalDuration"/>
</Duration>
</Summary>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:0)
这是XSLT 1.0还是2.0?在2.0中,有很多日期/时间算法的支持。在1.0中,查看EXSLT日期/时间库。