Zur Boardunity Forenstartseite

Zurück   Boardunity Ratgeber Forum » Technik » Programmierung und Datenbanken

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1  
Alt 17.08.2007, 12:34
neues Mitglied
 
Registriert seit: 08.2007
Beiträge: 1

XML - beim Auslesen werden Daten mehrfach erzeugt


Hallo zusammen,

ich hab mal wieder ein Problem. Ich transformiere Daten einer XML um, um die Struktur leicht zu ändern und bestimmte Sachen hinzuzufügen.
In der Original XML ist Superhead und HeadGroup auf einer Ebene.
Ich brauche die HeadGroup allerdings eine Ebene in der Superhead verschachtelt.


Hier mal die XML:

Code:
<Seite nr="15" typ="Zubehoer">
<Zubehoer>
<Superhead mref="38305" show="yes">Allgemeines Zubehör.</Superhead>
<HeadGroup>
<Head mref="9349">Werkzeugkoffer</Head>
<SubheadGroup>
<CopyGroup>
<Copy mref="13991">Kunststoff 305 x 265 x 90 mm</Copy>
<Abbildung File="z33901065007"/>
<Wertetabelle Linie="1" Spaltenbreite="(0,1)">
<Tabellenkopf>
<Tab_Best/>
</Tabellenkopf>
<Werte>
<Bestellnummer>3 39 01 065 00 7</Bestellnummer>
</Werte>
</Wertetabelle>
</CopyGroup>
<CopyGroup>
<Copy mref="13992">Metall 390 x 240 x 110 mm</Copy>
<Abbildung File="z33901067013"/>
<Wertetabelle Linie="1" Spaltenbreite="(0,1)">
<Tabellenkopf>
<Tab_Best/>
</Tabellenkopf>
<Werte>
<Bestellnummer>3 39 01 067 01 3</Bestellnummer>
</Werte>
</Wertetabelle>
</CopyGroup>
</SubheadGroup>
</HeadGroup>
<HeadGroup>
<Head mref="9402">Balancer</Head>
<SubheadGroup>
<CopyGroup>
<Copy mref="13506">Detaillierte Angaben zu FEIN Balancer finden Sie im Kapitel Zubehör / Balancer.</Copy>
<Abbildung File=""/>
</CopyGroup>
</SubheadGroup>
</HeadGroup>
Hier mal der Auszug aus meinem Script:

Code:
<xsl:for-each select="Zubehoer">
<xsl:element name="Zubehoer">
<xsl:for-each select="Superhead">
<xsl:element name="Superhead">
<xsl:attribute name="id">
<xsl:value-of select="(concat('s',count(preceding::Superhead)+1))"/>
</xsl:attribute>
<xsl:attribute name="mref">
<xsl:value-of select="@mref"/>
</xsl:attribute>
<xsl:attribute name="show">
<xsl:value-of select="@show"/>
</xsl:attribute>
<xsl:attribute name="wert">
<xsl:value-of select="."/>
</xsl:attribute>                                
<xsl:for-each select="../HeadGroup">
<xsl:element name="HeadGroup">
<xsl:for-each select="Head">
<xsl:element name="Head">
<xsl:attribute name="mref">
<xsl:value-of select="@mref"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
<xsl:for-each select="SubheadGroup">
<xsl:element name="SubheadGroup">
<xsl:for-each select="CopyGroup">
<xsl:element name="CopyGroup">
<xsl:for-each select="Copy">
<xsl:element name="Copy">
<xsl:attribute name="mref">
<xsl:value-of select="@mref"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
<xsl:for-each select="Abbildung">
<xsl:element name="Abbildung">
<xsl:attribute name="File">
<xsl:value-of select="(concat(@File,'.jpg'))"/>
</xsl:attribute>
</xsl:element>
</xsl:for-each>
<xsl:for-each select="Wertetabelle">
<xsl:element name="Wertetabelle">
<xsl:attribute name="Linie">
<xsl:value-of select="@Linie"/>
</xsl:attribute>
<xsl:attribute name="Spaltenbreite">
<xsl:value-of select="@Spaltenbreite"/>
</xsl:attribute>                                                    
<xsl:for-each select="Tabellenkopf">
<xsl:element name="Tabellenkopf">
<xsl:for-each select="Tab_Titel1">
<xsl:element name="Tab_Titel1">
<xsl:attribute name="mref">
<xsl:value-of select="@mref"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
<xsl:for-each select="Tab_Titel2">
<xsl:element name="Tab_Titel2">
<xsl:attribute name="mref">
<xsl:value-of select="@mref"/>
</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>                                                            <xsl:for-each select="Tab_Best">                                        <xsl:element name="Tab_Best">
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
Nun habe ich folgendes Problem:
So lange in einem Seiten-Tag nur eine Superhead ist, funktioniert alles super.
Wenn jetzt aber in einem Seiten-Tag mehrere Superheads sind, dann liest er mir zu jeder Superhead alle auf der Seite vorkommenden HeadGroups aus.
Also er wählt nicht nur diejenigen aus die eigentlich zu der entsprechenden Superhead gehören. Leider bin ich gestern zu keiner Lösung gekommen. Ich denke das ich auch wieder viel zu kompliziert denke das mir einfach Fachwissen in diesem Bereich fehlt. Meine Idee war, die Headgroup anhand der erzeugten ID der Superhead zu sortieren. Leider bekomme ich das einfach nicht geregelt.
Kann mir da jemand helfen.

Vielen Dank schon einmal
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24