2016-04-17 7 views
1

XSLT:Почему Saxon9-HE не обрабатывает этот 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>` 

Shell:

C: \ Users \ Administrator \ Desktop \ XML \ попробовать> Java -jar D: \ саксонской \ saxon9he.jar -о: try.html книга .xml try.xslt

ошибки:

Статическая ошибка в {ток-группа ключей()} в выражении в XSL: сортировка/@ себе вывести на столбец строки11 строки 47. try.xslt: XPST0017: Неизвестная системная функция current-group-key()

Статическая ошибка в {current-group-key()} в выражении в xsl: значение-of/@ select on строка 13 столбца 55 из try.xslt: XPST0017: неизвестная системная функция current-group-key()

Статическая ошибка в {current-group-key()} в выражении в xsl: apply-templates/@ select on line 15 столбец 59 из try.xslt: XPST0017: Неизвестная системная функция current-group-key()

Ошибки были сообщены во время составления таблицы стилей.


Это мой код и оболочка. Почему Saxon9-HomeEdition не может его проанализировать?

ответ

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), я думаю.

+0

Кроме того, выражение 'group-by' использует префикс пространства имен, который не был объявлен. –