mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 02:51 Benutzername: Passwort: Auto-Login

Thema: Hilfe bei XSLT Script vom 06.06.2007

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Hilfe bei XSLT Script
Autor Nachricht
fischchen
Threadersteller

Dabei seit: 06.03.2003
Ort: Kassel
Alter: 45
Geschlecht: Männlich
Verfasst Mi 06.06.2007 14:38
Titel

Hilfe bei XSLT Script

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,

ich sitze gerade an einem Script um eine XML zu formatieren.
Hier mein Problem:
In der XML gibt es Seiten Tags die als Information enthalten ob es Produkt- oder Zubehörseiten sind.
Auf den Zubehörseiten gibt es wiederrum Tags die Superhead heißen.
Diese müssen nun nachträglich durchnummeriert werden und der aktuelle Wert im Attribute ID gespeichert werden.
In der XML unten hab ich das mal händisch für die bessere Ansicht gemacht.
Nun wollte ich das über position() machen, allerdings wird mir logischerweise immer nur die aktuelle Position innerhalb des entsprechenden Seiten Tags ausgegeben. Beim nächsten Seiten Tag fängt er also wieder bei 1 an.
Ich brauche aber die Position auf die komplette XML bezogen.

Ich habe jetzt schon versucht über call:template eine Schleife zu bauen. Die macht aber leider nicht das was ich will.
Kann mir jemand helfen?

Hier mal der Code:

XML

Code:
   
<Seite nr="10" typ="Produkteintrag">
      <Produkteintrag DB-ID="">
      <Klassifizierung>
         <Gruppe mref="9360">Bohren</Gruppe>
         <Untergruppe mref="0"/>
         <Produktabbildung File="p720139_CMYK.jpg" xpos="0mm" ypos="0mm"/>
         <Masszeichnung File="m720139.jpg" xpos="0mm" ypos="0mm"/>
         <Bilderset_gross File="p720139_CMYK.jpg"/>
         <Bilderset_klein1 File="p720139_CMYK.jpg"/>
         <Bilderset_klein2 File="p720139_CMYK.jpg"/>
         <Bezeichnung mref="12666" top="90mm">Handbohrer bis 4 mm</Bezeichnung>
      </Klassifizierung>
   </Produkteintrag>
</Seite>
<Seite nr="11" typ="Produkteintrag">
      <Produkteintrag DB-ID="">
      <Klassifizierung>
         <Gruppe mref="9360">Bohren</Gruppe>
         <Untergruppe mref="0"/>
         <Produktabbildung File="p720139_CMYK.jpg" xpos="0mm" ypos="0mm"/>
         <Masszeichnung File="m720139.jpg" xpos="0mm" ypos="0mm"/>
         <Bilderset_gross File="p720139_CMYK.jpg"/>
         <Bilderset_klein1 File="p720139_CMYK.jpg"/>
         <Bilderset_klein2 File="p720139_CMYK.jpg"/>
         <Bezeichnung mref="12666" top="90mm">Handbohrer bis 4 mm</Bezeichnung>
      </Klassifizierung>
   </Produkteintrag>
</Seite>
<Seite nr="12" typ="Zubehoer">
   <Zubehoer>
   
      <Superhead id="1" mref="38305" show="yes">Allgemeines Zubehör.</Superhead>
         
      <HeadGroup id="1">
      </HeadGroup>
      <HeadGroup id="2">
      </HeadGroup>
   </Zubehoer>
</Seite>
<Seite nr="13" typ="Produkteintrag">
      <Produkteintrag DB-ID="">
      <Klassifizierung>
         <Gruppe mref="9360">Bohren</Gruppe>
         <Untergruppe mref="0"/>
         <Produktabbildung File="p720139_CMYK.jpg" xpos="0mm" ypos="0mm"/>
         <Masszeichnung File="m720139.jpg" xpos="0mm" ypos="0mm"/>
         <Bilderset_gross File="p720139_CMYK.jpg"/>
         <Bilderset_klein1 File="p720139_CMYK.jpg"/>
         <Bilderset_klein2 File="p720139_CMYK.jpg"/>
         <Bezeichnung mref="12666" top="90mm">Handbohrer bis 4 mm</Bezeichnung>
      </Klassifizierung>
   </Produkteintrag>
</Seite>
<Seite nr="35" typ="Zubehoer">
   <Zubehoer>
      
      <Superhead id="2" mref="38305" show="yes">Allgemeines Zubehör.</Superhead>
         
      <HeadGroup id="5">
      </HeadGroup>
         
      <Superhead id="3" mref="9608" show="yes">für MBS 16</Superhead>
      
      <HeadGroup id="8">
      </HeadGroup>
   </Zubehoer>
</Seite>


XSL
Code:

.
.
.
<!-- Zubehör auslesen -->   
   <xsl:for-each select="Zubehoer">
      <xsl:element name="Zubehoer">
         <xsl:for-each select="Superhead">
            <xsl:call-template name="for-loop"/>
               <xsl:with-param name="i" select="1"/>
               <xsl:with-param name="increment" select="1"/>
               <xsl:with-param name="operator" select="'&lt;='"/>
            </xsl:call-template>
                  </xsl:for-each>                  
               </xsl:element>
            </xsl:for-each>
         
         </xsl:element>
      </xsl:for-each>
   </xsl:template>
   
   <xsl:template name="for-loop">   
      <xsl:param name="i"/>
      <xsl:param name="increment"/>
      <xsl:param name="operator"/>
      <xsl:param name="target"/>
      <xsl:param name="iteration" select="1"/>
      <xsl:variable name="anzahl_superhead" select="count(//Superhead)"/>
      <xsl:if test="$i &lt;= $anzahl_superhead">
         <xsl:element name="Superhead">
            <xsl:attribute name="id">
               <xsl:value-of select="$i"/>
            </xsl:attribute>
         </xsl:element>
            <xsl:call-template name="for-loop">
               <xsl:with-param name="i" select="$i + $increment"/>
               <xsl:with-param name="increment" select="$increment"/>
               <xsl:with-param name="operator" select="$operator"/>
               <xsl:with-param name="iteration" select="$iteration + 1"/>
            </xsl:call-template>
      </xsl:if>


   </xsl:template>


Wäre super wenn sich das mal jemand anschauen könnte.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Ähnliche Themen XSLT Script
XSLT Position()
position=last() - XSLT
Mit XSLT URL encoden?
Währung mit XSLT
XML und XSLT - wie fange ich am besten an
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.