为什么Saxon9-HE不能处理这个XSLT?

时间:2016-04-17 15:32:51

标签: xml xslt xslt-2.0 saxon

XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ak="http://www.bilibili.com/namespace" version="2.0">
  <xsl:template match="/">
    <html>
      <body>
        <h1>Contracts of book name</h1>
        <xsl:for-each-group select="/ak:bookstore/ak:book" group-by="fuck:title">
          <xsl:sort select="current-group-key()"/>
          <p>The book name is 
            <b><xsl:value-of select="current-group-key()"/></b>
            <ul>
              <xsl:apply-templates select="current-group-key()">
                <xsl:sort select="ak:author"/>
              </xsl:apply-templates>
            </ul>
          </p>
        </xsl:for-each-group>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="ak:book">
    <li>
      <xsl:value-of select="ak:author"/>
    </li>
  </xsl:template>
</xsl:stylesheet>`

外壳:

  

C:\ Users \ Administrator \ Desktop \ xml \ try&gt; java -jar D:\ saxon \ saxon9he.jar -o:try.html book.xml try.xslt

错误:

  

xsl表达式中{current-group-key()}中的静态错误:try.xslt的第11行第47行中的sort / @ select:XPST0017:未知系统函数current-group-key()

     

xsl:value-of / @中表达式中{current-group-key()}中的静态错误选择第13行try.xslt第55列:XPST0017:未知系统函数current-group-key()

     

xsl中表达式{current-group-key()}中的静态错误:apply-templates / @ select第15行try.xslt第59列:XPST0017:未知系统函数current-group-key()

在样式表编译期间报告了错误。

这是我的代码和shell。为什么Saxon9-HomeEdition不能分析它?

1 个答案:

答案 0 :(得分:2)

该函数名为current-grouping-key()https://www.w3.org/TR/xslt20/#current-grouping-key),而不是current-group-key()。我想<xsl:apply-templates select="current-group-key()">应为<xsl:apply-templates select="current-group()">https://www.w3.org/TR/xslt20/#current-group)。