0

我知道有很多关于对 XSLT 元素进行分组的链接,但我无法让它工作,我在这里看看是否有人可以给我一个启发。

我需要对具有相同 id 的几个元素进行分组。

我的数据库是这样的:

在此处输入图像描述

我拥有的 XSLT 就是这个,读取数据库:

http://pastebin.com/hAuEaskA

这是我得到的 XML:

http://pastebin.com/4CrwsruZ

但我想这样分组:

http://pastebin.com/mBa6Gctf

有人可以给我一盏灯吗?

谢谢

4

1 回答 1

0

对于 XSLT 1.0,我将使用Muenchian 分组,如下所示:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output indent="yes"/>

<xsl:key name="item-by-id" match="item" use="@id"/>

<xsl:template match="root">
  <xsl:copy>
    <xsl:apply-templates select="item[generate-id() = generate-id(key('item-by-id', @id)[1])]"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="item">
  <xsl:copy>
    <xsl:copy-of select="@* | key('item-by-id', @id)/*"/>
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>

那改变

<root>
    <item id="questionario_atendimento_cordialidade">
        <quantidade id="2">1</quantidade>
        <nota id="3">1</nota>
    </item>
    <item id="questionario_atendimento_cordialidade">
        <quantidade id="2">1</quantidade>
        <nota id="3">2</nota>
    </item>
    <item id="questionario_atendimento_cordialidade">
        <quantidade id="2">3</quantidade>
        <nota id="3">3</nota>
    </item>
    <item id="questionario_atendimento_cordialidade">
        <quantidade id="2">8</quantidade>
        <nota id="3">4</nota>
    </item>
</root>

进入

<root>
   <item id="questionario_atendimento_cordialidade">
      <quantidade id="2">1</quantidade>
      <nota id="3">1</nota>
      <quantidade id="2">1</quantidade>
      <nota id="3">2</nota>
      <quantidade id="2">3</quantidade>
      <nota id="3">3</nota>
      <quantidade id="2">8</quantidade>
      <nota id="3">4</nota>
   </item>
</root>
于 2012-07-30T17:37:44.733 回答