我有XSLT,它将输入分组,求和当前组,并且只有在总和满足特定条件时才输出记录。 for-each-group正常工作,但我无法获得预告片记录的准确记录数。XSLT 2.0分组,求和,计数和条件
这里有一个样本输入:
<Book_Data>
<Book_Entry>
<Book>
<Book_ID>1</Book_ID>
<Book_Name>Test1</Book_Name>
</Book>
<Sales>
<Quantity>2</Quantity>
</Sales>
<Book_Entry>
<Book_Entry>
<Book>
<Book_ID>1</Book_ID>
<Book_Name>Test1</Book_Name>
</Book>
<Sales>
<Quantity>3</Quantity>
</Sales>
<Book_Entry>
<Book_Entry>
<Book>
<Book_ID>2</Book_ID>
<Book_Name>Test2</Book_Name>
</Book>
<Sales>
<Quantity>3</Quantity>
</Sales>
<Book_Entry>
<Book_Entry>
<Book>
<Book_ID>2</Book_ID>
<Book_Name>Test2</Book_Name>
</Book>
<Sales>
<Quantity>-3</Quantity>
</Sales>
<Book_Entry>
</Book_Data>
这里是一个样本XSLT(2.0):
<xsl:for-each-group select="Book_Data/Book_Entry" group-by="Book/Book_ID">
<xsl:if test="sum(current-group()/Sales/Quantity) != 0">
<xsl:value-of select="Book/Book_ID"/>
<xsl:value-of select="Book/Book_Name"/>
</xsl:if>
</xsl:for-each-group>
<xsl:value-of select="count(distinct-values(Book_Data/Book_Entry/Book/Book_ID[sum(../../Sales/Quantity) != 0]))"/>
问题是顶部正确输出唯一的书1。但拖车计数两书籍,我无法弄清楚如何调整总和以引用外部上下文中的Book_ID。
请出示预期输出(当然你不是说堆放这样的字符串?)。 –