繁体   English   中英

XSLT 使用 concat 或多个 value-of 元素连接变量?

[英]XSLT use concat or multiple value-of elements to join variables?

假设我有 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()调用将始终在 memory 中构建字符串(直到下一个 Saxon 版本...),而一系列xsl:text / xsl:value-of调用将(在可能的情况下)将其增量写入序列化程序,因此,如果字符串非常大,这可能会对 memory 的使用产生影响。

至少我通过分析发现, contact()的性能比多个xsl:text/xsl:value-of调用好 25%。 但我不知道这是否可以笼统地说,但就我而言,数亿行就是这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM