XSLT迭代或递归性能

时间:2011-07-13 15:13:45

标签: performance xslt recursion iteration

有没有人使用各种库迭代地或递归地测量运行等效 类似 XSL转换的性能?我对Java库最感兴趣,但也欢迎其他建议。

迭代示例(有效,给定 假设 //*可能与示例中的一些元素匹配,但对于“精神”不是“真” “XSLT”:

<xsl:for-each select="//*[position() &lt;= string-length(MyData/MyValue)]">
  <someTags>
    <xsl:value-of select="substring(MyData/MyValue, position(), 1)"/>
  </someTags>
</xsl:for-each>

递归示例(纯粹,但对同一任务非常冗长):

<xsl:template match="data/node">
  <xsl:call-template name="for-each-character">                    
    <xsl:with-param name="data" select="."/>
  </xsl:call-template>
</xsl:template>

<xsl:template name="for-each-character">                
  <xsl:param name="data"/>
  <xsl:if test="string-length($data) &gt; 0">
    <someTags>                            
      <xsl:value-of select="substring($data,1,1)"/>
    </someTags>
    <xsl:call-template name="for-each-character">
      <xsl:with-param name="data" select="substring($data,2)"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

这两个例子都来自这个问题:

XSLT for each letter in a string

注意:Stack Overflow往往是关于XSLT纯度和初学者必须正确学习XSLT的激烈讨论的地方。虽然我不太关心“纯度”的冗长,或者相当主观的“纯度”本身,但我真的很想知道这里的表现。

1 个答案:

答案 0 :(得分:1)