簡體   English   中英

如何改變根源 <xsl:for-each > 在xslt文件中動態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM