假设我在变量中有以下内容:
<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变量或Vegetables变量用于以后的条件:
<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>
我无法再通过food var访问我的水果属性,因为"xsl:value-of"
函数会使结构崩溃,这意味着我无法做到:
<xsl:value-of select="$Food/FRUIT[1]/COLOUR"/>
有没有办法保留结构(除了“价值”之外的东西)?
答案 0 :(得分:2)
你应该使用<xsl:copy-of>
代替。这将创建结构而不是评估节点值。
因此您将使用:
<xsl:copy-of select="Fruits" />
你应该检索输出中的水果或蔬菜结构。