2010-06-22 87 views
2

我有這個...XSLT 1.1節點集

<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common"> 

    <xsl:variable name="data"> 
    <root> 
     <test>1000</test> 
     <test>2000</test> 
     <test>3000</test> 
    </root> 
    </xsl:variable> 

    <xsl:template match="/"> 
    <xsl:for-each select="$data/root/test"> 
     <xsl:for-each select="."/> 
    </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

而且我認爲用XSLT 1.1 $ data變量將被視爲一個節點集,並且因此標準的XSLT的東西 - 像,每個- 應該管用。

我沒有收到錯誤信息,但沒有得到任何輸出 - 就好像$ data節點集完全是空的。

我也試過這個

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common"> 

     <xsl:variable name="data"> 
     <root> 
      <test>1000</test> 
      <test>2000</test> 
      <test>3000</test> 
     </root> 
     </xsl:variable> 

     <xsl:template match="/"> 
     <xsl:for-each select="exslt:node-set($data)/root/test"> 
      <xsl:for-each select="."/> 
     </xsl:for-each> 
     </xsl:template> 

</xsl:stylesheet> 

具有相同的結果。 (事實上​​,我以前做過這個沒有問題) 我使用的是撒克遜。

我錯過了什麼? (我不是在一個位置的方式使用XSLT 2.0)

感謝

回答

1

您寫道:

我沒有得到一個錯誤,但我沒有得到任何 輸出

的問題是在這裏:

<xsl:for-each select="."/> 

你的問題:

我錯過了什麼?

回答:您正在檢查你的模板

0
<xsl:template match="/"> 
    <xsl:for-each select="exslt:node-set($data)/root/test"> 

    <xsl:for-each select="."/> 
    </xsl:for-each>  </xsl:template> 

的錯誤是在以下的(空)指令

<xsl:for-each select="."/> 

這(可能)必須

<xsl:value-of select="."/>

<xsl:copy-of select="."/>

還是...?