Я новичок в xsl.Я понимаю, что были заданы некоторые похожие вопросы, но мне нужна помощь, так как я не могу понять, что случилось с моим кодом.У меня есть XML-файл транзакций.Я хочу сначала сгруппировать по дате, а затем отсортировать каждую группу транзакций по времени
У меня есть этот xml
<History>
<ShareLoanResults>
<Account>123</Account>
<PostingDt>20180718</PostingDt>
<PostingTime>215642</PostingTime>
<AmtLoan>000000000</AmtLoan>
<AmtShare>000000001</AmtShare>
<AmtInt>000000000</AmtInt>
<Balance>000000487</Balance>
<Description />
</ShareLoanResults>
<ShareLoanResults>
<Account>123</Account>
<PostingDt>20180719</PostingDt>
<PostingTime>215650</PostingTime>
<AmtLoan>000000000</AmtLoan>
<AmtShare>000000003</AmtShare>
<AmtInt>000000000</AmtInt>
<Balance>000000494</Balance>
<Description />
</ShareLoanResults>
<ShareLoanResults>
<Account>123</Account>
<PostingDt>20180719</PostingDt>
<PostingTime>215640</PostingTime>
<AmtLoan>000000000</AmtLoan>
<AmtShare>000000002</AmtShare>
<AmtInt>000000000</AmtInt>
<Balance>000000489</Balance>
<Description />
</ShareLoanResults>
<ShareLoanResults>
<Account>123</Account>
<PostingDt>20180717</PostingDt>
<PostingTime>215641</PostingTime>
<AmtLoan>000000000</AmtLoan>
<AmtShare>000000004</AmtShare>
<AmtInt>000000000</AmtInt>
<Balance>000000486</Balance>
<Description />
</ShareLoanResults>
</History>
Я ищу этот результат
<History>
<ShareLoanResults>
<Order>1</Order>
<Account>123</Account>
<PostingDt>20180717</PostingDt>
<PostingTime>215641</PostingTime>
<Amount>4</Amount>
</ShareLoanResults>
<ShareLoanResults>
<Order>1</Order>
<Account>123</Account>
<PostingDt>20180718</PostingDt>
<PostingTime>215642</PostingTime>
<Amount>1</Amount>
</ShareLoanResults>
<ShareLoanResults>
<Order>1</Order>
<Account>123</Account>
<PostingDt>20180719</PostingDt>
<PostingTime>215640</PostingTime>
<Amount>3</Amount>
</ShareLoanResults>
<ShareLoanResults>
<Order>2</Order>
<Account>123</Account>
<PostingDt>20180719</PostingDt>
<PostingTime>215650</PostingTime>
<Amount>3</Amount>
</ShareLoanResults>
</History>
Вот мой xsl
<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="xml" omit-xml-declaration="no" />
<xsl:template match="/">
<xsl:copy>
<xsl:for-each-group select="History/ShareLoanResults" group-by="PostingDt">
<xsl:for-each select="current-group()">
<xsl:sort select="PostingTime" order="ascending"/>
<ShareLoanResults>
<Order>
<xsl:value-of select="position()"/>
</Order>
<Account>
<xsl:value-of select="Account"/>
</Account>
<PostingDt>
<xsl:value-of select="PostingDt"/>
</PostingDt>
<PostingTime>
<xsl:value-of select="PostingTime"/>
</PostingTime>
<Amount>
<xsl:value-of select="format-number(AmtShare,'#.000000')"/>
</Amount>
</ShareLoanResults>
</xsl:for-each>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Однако я получаю исключение: javax.xml.transform.TransformerException: Не удалось найти функцию: current-group
Если я удаляю <xsl:for-each-group select="current-group()">
и соответствующий закрытый тег, я получаю пустой результат ниже
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ShareLoanResults><Order/><Account/><PostingDt/><PostingTime/><Amount>NaN</Amount></ShareLoanResults>
Может кто-нибудь сказать мне, что я сделал не так и / или пропустил?Спасибо!