我想动态更改<xsl:for-each>
的根目录。其实我用的是嵌套循环。基于外循环我想改变内循环的根。
为此,我编写了以下代码,但我无法做到。
外循环开始 然后 持有root的变量
<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)
的静态值,那么它可以正常工作但是当我将它作为变量传递给root时它不起作用
如何实现同样的目标。任何人都可以帮助我。
答案 0 :(得分:0)
在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: Getting started,它将帮助您了解这些语言的其他原则。