2015-09-21 6 views
1

Здесь у меня есть небольшой фрагмент, который имеет переменную num_cpu в условии if, я не могу получить к ней доступ за пределами тега if. Как я могу это решить?Использовать переменную ouside области в xslt

Как сделать num_cpu глобальным, чтобы я мог использовать его несколько раз за пределами цикла for?

<xsl:for-each select="t:container"> 
     <xsl:if test="@name = 'cpu'"> 
      <xsl:variable name="num_cpu" select="t:leaf/t:value/@value"/> 
     </xsl:if> 
     <xsl:value-of select="$num_cpu"/> 
    </xsl:for-each> 

ответ

0

Чтобы определить глобальную переменную, поместите <xsl:variable> элемент в качестве дочернего элемента корневого таблицы стилей.

В дополнение к ответу на вопрос в комментарии. Как изменить значение в условии if: XSLT не является обязательным языком программирования, где вы можете изменить значение переменной.

Если вы хотите передать значение из одного шаблона в другой, вы можете использовать параметр, например.

Код сниппета

<xsl:template match="foo"> 

    <xsl:apply-templates select="bar"> 

    <xsl:with-param name="pos" select="100"/> 

    </xsl:apply-templates> 

</xsl:template> 



<xsl:template match="bar"> 

    <xsl:param name="pos"/> 

    <xsl:value-of select="$pos"/> 

</xsl:template> 
+0

Привет спасибо за Ваш ответ, Даже если я объявить переменную под корневой таблицы стилей значение того, возложенные на него в соответствии, если условие не доступен снаружи, если условие, как я справиться с этим? –

+0

Вы не назначаете значение переменной в условии if, вы объявляете совершенно новую переменную, которая имеет одно и то же имя. –

Смежные вопросы