0

XSLT要素のグループ化については多くのリンクがあることは知っていますが、それを機能させることはできません。誰かが私に光を当ててくれるかどうかを確認するためにここにいます。

同じIDを持ついくつかの要素をグループ化する必要があります。

私のデータベースは次のようなものです。

ここに画像の説明を入力してください

私が持っているXSLTはこれで、データベースを読み取ります。

http://pastebin.com/hAuEaskA

そしてこれは私がGETする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 に答える