【问题标题】:XSLT 1.1 nodesetXSLT 1.1 节点集
【发布时间】:2010-06-22 18:17:51
【问题描述】:

我有这个……

<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 的东西——比如 for-each——应该可以工作。

我没有收到错误,但没有输出 - 好像 $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)

谢谢

【问题讨论】:

    标签: xslt saxon


    【解决方案1】:

    你写道:

    我没有收到错误,但我没有收到 输出

    问题出在这里:

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

    你的问题:

    我错过了什么?

    答案:您缺少模板

    【讨论】:

      【解决方案2】:
      <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="."/> 
      

      这(可能)必须是

      &lt;xsl:value-of select="."/&gt;

      &lt;xsl:copy-of select="."/&gt;

      还是……?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多