我做过研究,但是在操作属性时我只发现了解决方案。
我最近开始研究XSL。我想用它来将我的xml文件转换为html文件。我想要提取的数据应该显示有多少节点具有一定的值。
XML具有以下结构:
<Tests>
<Test>
<TestName> a </TestName>
<Date> 12.11.10 </Date>
<Result> Fail </Result>
</Test>
<Test>
<TestName> b </TestName>
<Date> 13.11.10 </Date>
<Result> Fail </Result>
</Test>
<Test>
<TestName> c </TestName>
<Date> 14.11.10 </Date>
<Result> Pass </Result>
</Test>
</Tests>
我想要的是: 2(失败次数) 1(通过次数)
任何人都可以帮我完成这项任务吗?
答案 0 :(得分:11)
也许:
<xsl:value-of select="count(Tests/Test[normalize-space(Result)='Fail'])" />
答案 1 :(得分:3)
此样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:key name="kTestByResult" match="Test" use="normalize-space(Result)"/>
<xsl:template match="/">
<xsl:value-of select="concat(count(key('kTestByResult','Fail')),
' (number of Fails) ',
count(key('kTestByResult','Pass')),
' (number of Passes)')"/>
</xsl:template>
</xsl:stylesheet>
输出:
2 (number of Fails) 1 (number of Passes)
答案 2 :(得分:2)
<xsl:value-of select="count(/Tests/Test/Result[normalize-space(text()) = 'Fail'])" />
<xsl:text> (number of Fails)</xsl:text>
<xsl:value-of select="count(/Tests/Test/Result[normalize-space(text()) = 'Pass'])" />
<xsl:text> (number of Passes)</xsl:text>