我想简单地返回xsl整数序列,但是如果我们有$ value ='2'的情况,那么它不会返回整数序列,而是返回String =“4 0”。为什么?这是我的代码:
<xsl:variable name="seq">
<xsl:choose>
<xsl:when test="$value = '0'"><xsl:value-of select="(4)"/></xsl:when>
<xsl:when test="$value = '1'"><xsl:value-of select="(0)"/></xsl:when>
<xsl:when test="$value = '2'"><xsl:value-of select="(4,0)"/></xsl:when>
</xsl:choose>
</xsl:variable>
我使用的是Saxon 9.4 PE。
提前致谢!
答案 0 :(得分:0)
使用xsl:sequence
返回一个序列,另外您需要使用as
属性,例如
<xsl:variable name="seq" as="xs:integer*">
<xsl:choose>
<xsl:when test="$value = '0'"><xsl:sequence select="(4)"/></xsl:when>
<xsl:when test="$value = '1'"><xsl:sequence select="(0)"/></xsl:when>
<xsl:when test="$value = '2'"><xsl:sequence select="(4,0)"/></xsl:when>
</xsl:choose>
</xsl:variable>
请注意,XPath 2.0具有if
表达式,因此您可以使用
<xsl:variable name="seq" select="if ($value = 0) then 4 else if ($value = 1) then 0 else if ($value = 2) then (4,0) else ()"/>
而不是使用xsl:choose / xsl:when