如何在 xslt 文件中动态更改 <xsl:for-each >的根目录



我想动态更改<xsl:for-each>的根。实际上我用的是嵌套循环。基于外循环,我想改变内循环的根。为此,我编写了以下代码,但我无法做到。

外循环开始然后保存根

的变量
<xsl:variable name="cdtitle">
    <xsl:value-of select="/root/Data/AppNameEncrpt"/>
    </xsl:variable>  
    inner loop
    <xsl:for-each select="msxsl:node-set($cdtitle)">
    ..
    </xsl:for-each>

如果我传递msxsl:node-set($cdtitle)的静态值,那么它就可以工作但是当我将它作为一个变量在根中传递时,它不能工作

怎样才能达到同样的效果。谁能帮我一下?

在XSLT中(与任何函数式语言一样),变量是不可变的。然而,在"循环"(从技术上讲不是循环)中,您可以将变量设置为该循环上下文中的任何内容。由于您没有显示任何输入XML,我猜您想要实现什么,但总有一种(简单的)方法。

假设你有这样一个变量:

<xsl:variable name="cdtitles" select="/data/cds/title" />

它将保存所有cd标题。现在我可以输入:

<xsl:for-each select="$cdtitles">
    <xsl:variable name="cdtitle" select="." />
    <!-- do something with the title, var changes with each title -->
</xsl:for-each>

看一下XSLT:入门,它将帮助您理解该语言的这些原则和其他原则。

相关内容

  • 没有找到相关文章

最新更新