我对这个主题的理解非常松散,但实际上我需要定义一个参数并改变它的值,所以我选择将它放在 for-each 循环的顶部,使其成为本地的,但是当我潜入嵌套的标记,例如每个循环的另一个,我不能再从更高的一个访问局部变量。我的问题是它们不会被新的嵌套循环继承吗?即使它们应该在范围内,他们也看不到变量吗?
<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>
无法访问系列门牌号变量,这导致我在每个嵌套的内部感到痛苦