执行此操作是有价值的(内存,CPU,时间):
<xsl:variable name="node" select="key('mykey',category)"/>
<xsl:value-of select="count($node[value/text() = 10.0])"/>
<xsl:value-of select="count($node[value/text() = 5.0])"/>
<xsl:value-of select="count($node[value/text() = 0.0])"/>
而不是:
<xsl:value-of select="count(key('mykey',category)[value/text() = 10.0])"/>
<xsl:value-of select="count(key('mykey',category)[value/text() = 5.0])"/>
<xsl:value-of select="count(key('mykey',category)[value/text() = 0.0])"/>
或其他方式??
答案 0 :(得分:0)
它可能会产生一些小的差异,但可能并不重要。但性能问题的答案始终是(a)它取决于您使用的处理器,以及(b)测量它以找出答案。
我建议使用[value=0.0]
而不是[value/text()=0.0]
。使用/ text()是一种坏习惯,似乎越来越多地来自XQuery世界。除非您的数据包含注释或内联元素或非规范化的相邻文本节点,否则它通常会给出相同的答案。省略/ text()可以使查询更短,更健壮。