![](/img/trans.png)
[英]Counter item inside two "xsl:for-each" cicle with xslt language
[英]How to change the root of <xsl:for-each > dynamically in xslt file
我想動態更改<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)
的靜態值,則它可以工作,但是當我將其作為變量傳遞給root時,它不起作用
怎么能達到同樣的效果。 誰能幫我。
在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:入門 ,它將幫助您理解語言的這些原則和其他原則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.