2015-02-09 36 views
-1

嗨,我需要創建一個全局數組變量,並設置動態的循環通來回,每個如何在XSLT 1.0中創建一個全局數組變量和動態設置值,它循環

我試圖像值吧

<xsl:key name="kItemValue" match="/*/*/*/accountId/text()" use="."/> 
<xsl:variable name="AccountIds"/> 

<xsl:template match="/"> 
    <xsl:for-each select="/*/*/*/accountId/text()[generate-id()=generate-id(key('kItemValue', .)[1])]"> 
<xsl:variable name="AccountIds"><xsl:value-of select="." /></xsl:variable> 
     </xsl:for-each> 

後者我需要迭代通過該數組值,這樣在每個循環它檢查一個值與當前循環項目並打印一些文本。在此先感謝

+0

有沒有「陣列s「在XSLT中,並且不能更改已設置的」全局「變量的值。 - 也許你在描述自己的問題時並未提出如何實現技術上無法實現的問題。 – laune 2015-02-09 06:33:45

+0

「Java」在哪裏?我已經移除了標籤。 – laune 2015-02-09 06:34:06

+0

@ laune當我爲每一個我得到一些值,那些需要被存儲在一個變量後者,我需要迭代通過那些值我檢查的價值基礎上,我會打印文本,這是我的問題。例如在迭代中,我得到了一些值3 5 6 7 2 ..就像我需要將這些值存儲到一個變量。後者我需要遍歷這些值,並說如果值> 3我會打印「只是通過」,如果值> 5「通過」就像任何想法使用XSLT 1.0來實現這一點 – Brittas 2015-02-09 06:58:47

回答

0

您的問題並不完全清楚,因爲(如評論中已經提到的)XML中沒有數組。但是,如果你願意,你可以填充一個變量與一組選擇的節點,例如:

<xsl:variable name="unique-accounts" select="/*/*/*/accountId[generate-id()=generate-id(key('account-by-id', .)[1])]"/> 

,並在以後的某個點上,過程中這些節點,例如:

<xsl:for-each select="$unique-accounts"> 
    <!-- do something --> 
</xsl:for-each> 

請注意,對於這項工作,該變量必須存儲節點集,不是一堆文本值的 - 讓你在這個例子中的關鍵將不得不被修改爲:

<xsl:key name="account-by-id" match="accountId" use="." /> 
相關問題