2011-12-05 39 views
0

是有价值的(内存,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

它可能会产生一个小的差异,但可能并不重要。但是对性能问题的答案总是(a)它取决于你使用的处理器,并且(b)测量它以找出问题。

我建议使用[value=0.0]而不是[value/text()=0.0]。使用/ text()是一个坏习惯,似乎越来越多地来自XQuery世界。它通常会给出相同的答案,除非您的数据包含注释或内联元素或非标准化的相邻文本节点。省略/ text()会使您的查询更短,更健壮。