0
我非常理解這個主題,但實際上我需要定義一個參數並將其值更改,所以我選擇將它放在for-each循環的頂部,使其成爲本地,但是當我深入到一個嵌套標記中時,例如每個循環的anoter,我就不能再從更高層的地方訪問局部變量。我的問題是他們沒有被新的嵌套循環繼承?即使他們應該在範圍之內,他們是否能看到變量?XSLT中的參數及其上下文
<xsl:for-each select="ns0:BxfMessage/ns0:BxfData/ns0:Content" >
<xsl:if test="string(@version) = 'Series'">
<SERIES>
<xsl:param name="SeriesHouseNumber">
<xsl:value-of select="string(ns0:BxfMessage/ns0:BxfData/ns0:Content/ns0:ProgramContent/ns0:ContentMetaData/ns0:ContentId/ns0:HouseNumber)"/>
</xsl:param>
<UniqueIDFieldName>
<xsl:value-of select="string(ns0:ProgramContent/ns0:ContentMetaData/ns0:ContentId/ns0:HouseNumber)"/>
</UniqueIDFieldName>
<PROGID1>
<xsl:value-of select="string(ns0:ProgramContent/ns0:ContentMetaData/ns0:ContentId/ns0:HouseNumber)"/>
</PROGID1>
<SER_TITLE>
<xsl:value-of select="string(ns0:ProgramContent/ns0:ContentMetaData/ns0:Name)"/>
</SER_TITLE>
<xsl:for-each select="../ns0:Content" >
<xsl:if test="string(@version) = 'Title'">
<CHILDREN>
<EPISODE>
<xsl:if test="$SeriesHouseNumber = string(ns0:ProgramContent/ns0:ContentMetaData/ns0:ContentId/ns0:AlternateId)">
<ORIG_CT_TITLE>
<xsl:value-of select="string(ns0:ProgramContent/ns0:ContentMetaData/ns0:Name)"/>
</ORIG_CT_TITLE>
系列門牌號碼變量不能訪問,這是造成我的嵌套痛每個
如何更新創建後存儲在參數中的字符串?我試過使用xsl:value,但只是比較它併爲我輸出一個布爾值到輸出文件。然後我會嘗試一個變量,看看是否可以從嵌套循環訪問,歡呼 – user2835543
你不能修改已經聲明的變量。但是,如果變量在循環內部,它將在每次迭代中重新聲明。與其他語言中標記爲「readonly」或「final」的變量類似。 –
是的,我知道,它真的讓我很不舒服,我不能在聲明後修改一個變量,但我已經找出了一個方法,它歡呼:) – user2835543