3
我需要從輸入中爲固定數量的語言生成XML結構,該輸入可能包含或不包含每種語言的信息。如果信息丟失,我需要生成空的元素。問題是,我需要在輸出結構中的許多地方迭代語言。xslt-1.0迭代固定值列表
最簡單的方法是使用類似的東西
<xsl:variable name="languages" select="en,de,fr">
<xsl:for-each select="$languages">
...
</xsl:for-each>
與出現的地方我需要的語言列表中的循環。
當然這不起作用,因爲select="en,de,fr"
沒有定義節點列表。有了擴展,我可以使用node-set
函數,但我堅持使用XSLT-1.0。
有沒有什麼辦法來定義一個恆定的節點集來迭代?
(這在某種程度上與another question那裏接受的答案殺死創建一個常數節點集的很多想法,在需要的<xsl:variable/>
子元素特定一切)
幸運的是,在我的用例中只需要靜態值。 – Harald
那麼,在此期間,我學到了一個醜陋的副作用:當我循環使用$語言時,在循環中我似乎無法再訪問原始文檔。一個''不會返回任何結果:-(任何想法如何解決這個問題? –
Harald
@Harald你必須將它存儲在一個變量中' '。自己的意思是當前文檔的根目錄,並且在for語言中的每一個上面,這意味着樣式表('document('')')。 –