我们将 xslt 1.0 与 Xpath 1.0 和 XalanJ 2.7.1 一起使用。我们对模板进行分析并尝试减少调用时间。所以最大的热点是:
<xsl:template name="tplAttribute">
<xsl:param name="sourceObject" />
<xsl:param name="sourceName" />
<xsl:param name="targetName" />
<xsl:variable name="sourceAttribute" select="$sourceObject/attribute[@name = $sourceName]" />
<xsl:if test="$sourceAttribute">
<dcx:attribute name="{$targetName}">
<xsl:value-of select="$sourceAttribute" />
</attribute>
</xsl:if>
</xsl:template>
871 次点击的平均时间为 103 次,可变时间为 59 毫秒。
有没有更好的解决方案来减少转换的时间?
编辑: 处理“sourceObject”时调用输入结构模板:
object
tplAttribute
tplAttribute
tplAttributeDefault
tplAttribute
tplAttributeSomeDifferentLogic
tplAttribute
tplAttributeOther