我想动态创建带有动态名称的变量,以便以后在我的转换中使用,但要做到这一点,我需要动态生成XSL,然后在同一个脚本中运行它.
<xsl:for-each select="//constants/constant" > <xsl:variable > <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:attribute name="select"> <xsl:value-of select="@value"/> </xsl:attribute> </xsl:variable> </xsl:for-each>
我可以使用XSL动态构建XSL以便稍后在同一个脚本中运行吗?
注意:我们的XML通过运行CL XSL转换引擎的批处理进行转换;因此,仅在XSL文档中引用XSL样式表不是一种选择.
目前在纯XSLT(1.0或2.0)中你想要的是不可能的.
如果您使用的是Saxon 9.x XSLT processor,则有几个扩展功能可以实现此功能:saxon:compile-stylesheet()和saxon:transform().
很少有问题的解决方案真正需要这样的功能,如果你描述问题很可能人们会找到解决问题的最佳方法,而不必动态生成和执行XSLT样式表.