2010-06-22 86 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="."/>

还是...?