将XSLT节点的输出存储到XSLT变量中
我的XSLT v1.0代码-将XSLT节点的输出存储到XSLT变量中,xslt,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<
<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>
"
B
s
NA
"
我想将上述节点的输出
存储到一个变量中。像这样的,
<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>
"
"
我应该写什么来代替
?
来获取节点的值
?或者有没有其他方法可以将节点的输出值读入XSLT中的变量?我想您只需要
<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>
"
B
s
NA
"
然后
<Test2>
<xsl:text>"</xsl:text>
<xsl:value-of select="$test"/>
<xsl:text>"</xsl:text>
</Test2>
"
"
您可以使用元素节点作为包装器,但如果您只想处理一些字符串,如
B
或NA
我有多个节点,如Test1
,并且不想复制代码将值读入变量中,那么它并不能改善情况。你能建议点别的吗?提前感谢。您可以将值存储在变量中,甚至节点中。但至少在XSLT1.0处理器中,您最终会得到结果树片段,您所能做的就是在这些片段上使用copy of
或value of
。我不确定你想如何使用你的变量,对于你已经展示的情况,我认为我的建议足够了,请编辑你的问题并提供更多细节。