XML Transformieren

lam_tr

Top Contributor
Hallo zusammen,

ich habe hier die folgende XML. Dabei geht es um eine UserListe, bei der die Gruppe zugewiesen wird.

XML:
<data>
    <user name="Hans.Peter" gruppe="TeamA">
    <user name="Hans.Peter" gruppe="TeamB">
    <user name="Max.Muster" gruppe="TeamC">
    <user name="Max.Muster" gruppe="TeamD">
</data>

Meine Aufgabe soll jetzt so sein, dass ich es nach diese Struktur mit XSLT transformieren soll.

XML:
<data>
    <user name="Hans.Peter" gruppe="TeamA,TeamB">
    <user name="Max.Muster" gruppe="TeamC, TeamD">
</data>

Hiermit habe ich angefangen, aber irgendwie raffe ich das nicht wirklich.

XML:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output indent="yes"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="data">
    <xsl:copy>
      <xsl:apply-templates select="@*"/>
      <xsl:for-each-group select="*" group-by="@name">
        <mergedSublist>          
          <xsl:apply-templates select="@gruppe,current-group()/*[not(self::gruppe)]"/>
        </mergedSublist>
      </xsl:for-each-group>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

Kann mir jemand da ein bissle nachhelfen oder Tipps geben?

Fragen:
  • Wenn ich ein For Each Group By @Name mache, wie komme ich an alle Attributewerte "Gruppen" kommen um es zu concatenieren?
  • Mit den obigen XSLT füge ich nur die erste Gruppe eines Users ein, wie macht man es besser?

Viele Grüße
lam
 
Zuletzt bearbeitet:
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben