将XSLT节点的输出存储到XSLT变量中

时间:2013-07-23 11:38:12

标签: xslt

我的XSLT v1.0代码 -

<Test1>
    <xsl:text>"</xsl:text>
    <xsl:choose>
        <xsl:when test="/root/node1">B</xsl:when>
        <xsl:when test="/root/node2">S</xsl:when>
        <xsl:otherwise>NA</xsl:otherwise>
    </xsl:choose>
    <xsl:text>"</xsl:text>     
</Test1>

我想将上述节点<Test1>的输出存储到变量中。像这样的东西,

<xsl:variable name="test">
    <xsl:value-of select="??"/>
</xsl:variable>

使用此变量的值来计算其他内容或显示值

<Test2>
    <xsl:text>"</xsl:text>
    <xsl:value-of select="$test"/>
    <xsl:text>"</xsl:text>
</Test2>

我应该写什么而不是??来获取节点<Test1>的值?或者还有其他方法可以将节点的输出值读入XSLT中的变量吗?

1 个答案:

答案 0 :(得分:0)

我想你只想要

<xsl:variable name="test">
    <xsl:text>"</xsl:text>
    <xsl:choose>
        <xsl:when test="/root/node1">B</xsl:when>
        <xsl:when test="/root/node2">S</xsl:when>
        <xsl:otherwise>NA</xsl:otherwise>
    </xsl:choose>
    <xsl:text>"</xsl:text>
</xsl:variable>

然后

<Test2>
    <xsl:text>"</xsl:text>
    <xsl:value-of select="$test"/>
    <xsl:text>"</xsl:text>
</Test2>

您可以使用元素节点作为包装器,但如果您只想处理BNA等字符串,则不会改进。