假设我有20个要加入csv字符串的变量。我应该使用concat()
,还是将所有变量彼此放在<xsl>
元素中?
两个:
<xsl:value-of select="concat($var1, ';', ..., $var10)"/>
或:
<xsl:value-of select="$var1"/>
<xsl:text>;</xsl:text>
...
<xsl:value-of select="$var10"/>
特别是关于性能,因为我要处理一亿行。
contact
方法类似于java
StringBuilder
,而元素方法类似于string += val
重新分配吗?如果是,concat
当然会更好。但这是真的吗?
几乎不可能有可衡量的性能差异,但是找出它的唯一方法是对其进行测量。
在Saxon中,concat()
调用将始终在内存中构建字符串(直到下一个Saxon版本...),而一系列xsl:text
/ xsl:value-of
调用将(可能)将其递增地写入串行器,因此,如果字符串很大,可能会影响内存使用。