XSLT Group的独特元素

时间:2012-07-30 17:22:45

标签: html xslt xpath grouping

我知道有很多关于分组XSLT元素的链接,但我不能让它工作,我在这里看看是否有人可以给我一个亮点。

我需要将几个具有相同ID的元素分组。

我的数据库是这样的:

enter image description here

我有这个XSLT,阅读数据库:

  

http://pastebin.com/hAuEaskA

这就是XML i GET:

  

http://pastebin.com/4CrwsruZ

但我想像这样分组:

  

http://pastebin.com/mBa6Gctf

有人可以给我一个灯吗?

由于

1 个答案:

答案 0 :(得分:0)

使用XSLT 1.0,我将使用Muenchian grouping,如下所示:

<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>