2015-05-19 4 views
1

Пусть я следующее содержание в переменной:XSLT: сохранение структуры при использовании «стоимость из»

<xsl:variable name="Fruits"> 
<FRUIT> 
    <TYPE> APPLE </TYPE> 
    <COLOUR> RED </COLOUR> 
    <SIZE> 5 </COLOUR> 
</FRUIT> 
</xsl:variable> 

можно затем легко захватить свойства, то есть:

<xsl:variable name="FirstColour" select="$Fruits/FRUIT[1]/COLOUR"/> 

Но предположим, Я хочу выбрать, использовать ли мою переменную Fruits или переменную Овощи для некоторых более поздних условий:

<xsl:variable name="Food"> 
    <xsl:choose> 
    <xsl:when test="GoFruit"> 
     <xsl:value-of select="$Fruits" /> 
    </xsl:when> 
    <xsl:when test="GoVeg"> 
     <xsl:value-of select="$Vegetables" /> 
    </xsl:when> 
    </xsl:choose> 
</xsl:variable> 

Я больше не могу получить доступ свойства моего плода через пищевой вар, так как функция "xsl:value-of" рухнули бы структуру, то есть я не могу сделать:

<xsl:value-of select="$Food/FRUIT[1]/COLOUR"/> 

Есть ли способ, чтобы сохранить структуру (что-то другое, чем «стоимость из»)?

ответ

2

Вместо этого вы используете вместо этого <xsl:copy-of>. Это создаст структуру вместо оценки значений узлов.

Таким образом, вы будете использовать:

<xsl:copy-of select="Fruits" /> 

и вы должны получить фруктов или овощей структуры в вашем выводе.

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