2015-11-27 45 views
0

我想簡單地返回一個xsl整數序列,但如果我們有$ value ='2'的情況,那麼它不會返回一個整數序列,而是一個整數String =「4 0」。爲什麼? Here's我的代碼:使用撒克遜9.4 PE無法在xsl中返回一個整數值序列:選擇

<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> 

I'm。

在此先感謝!

+0

@Julian,如果你希望你的代碼更易讀:選擇/ XSL ,你可以刪除括號 - 它們不是必需的。 –

+0

謝謝,朱利安。我不知道。 – Juan

回答

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:當

+0

非常感謝您的快速響應,Martin。它非常完美!我想我會使用選擇替代方法來設置代碼更具可讀性。問候。 – Juan

相關問題