tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
0
ZUGRIFFE
713
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    chris_head chris_head ist offline Mitglied
    Registriert seit
    May 2007
    Beiträge
    22
    Hallo,

    ich versuche derzeit aus einem bestehenden Xml file, welches Definitionen für alle möglichen Variationen enthält, in ein konkretes XML (also für ein bestimmtes Modell) zu erzeugen.
    Dabei kann es mehrere Varianten für ein Model geben bzw. es kann auch eine Variation geben, die für alle Model möglich ist. Es ist ebenfalls möglich, dass es keine Variation für ein Model gibt. In diesem Fall gibt es allerdings mindestens eine Variation für vom Typ "alle".
    Bei der Filterung (die mein eigentliches Problem ist) soll die Variation bevorzugt werden, die modelspezifisch ist.

    Das "Definitions"-XML sieht (gekürzt) etwa so aus:
    HTML-Code:
    <Fahrzeug>
    	<Model></Model>
    	<Bauteil>
    		<Name>Rad</Name>		
    		<Variation Typ="alle">
    			<RadTyp>RadAlle</RadTyp>
    		</Variation>	
                    <Variation Typ="ABC">
    			<RadTyp>RadABC1</RadTyp>
    		</Variation>
    		<Variation Typ="XYZ">
    			<RadTyp>RadXYZ123</RadTyp>
    		</Variation>			
    	</Bauteil>
    	...
    </Fahrzeug>
    Das Final-XMl sollte so aussehen:
    HTML-Code:
    <Fahrzeug>
    	<Model>ABC</Model>
    	<Bauteil>
    		<Name>Rad</Name>		
    	       <RadTyp>RadABC1</RadTyp>			
    	</Bauteil>
    	...
    </Fahrzeug>
    Das hab ich bis jetzt (bestimmt noch ausbaufähig).
    HTML-Code:
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="xml" version="1.0" encoding="UTF-16" indent="yes"/>
    	<xsl:param name="InputFile"/>
    	<xsl:param name="Model"/>
    	<xsl:variable name="DefDoc" select="document($InputFile)"/>
    	
    	<xsl:template match="Fahrzeug">
    		<xsl:element name="{name()}">
    			<xsl:apply-templates/>			
    		</xsl:element>
    	</xsl:template>
    	
    	<xsl:template match="Model">
    		<Model><xsl:value-of select="$Model"></xsl:value-of></Model>
    	</xsl:template>
    	
    	<xsl:template match="Bauteil">
    		<xsl:copy>
    			<xsl:apply-templates select="Name"/>
    			<xsl:apply-templates select="Variation"/>			
    		</xsl:copy>
    	</xsl:template>
    	
    	<xsl:template match="Variation">
    		<!-- TODO -->
    	</xsl:template>
    </xsl:stylesheet>
    Ich hab schon mit verschiedene Sachen (u.a. xsl:copy-of) experimentiert, aber bisher nur mit Teilerfolg.
    Das Erzeugen/Kopieren der Knoten "Fahrzeug", "Model", "Bauteil" und "Name" krieg ich hin. Nur das Ermitteln der richtigen Variation klappt nicht.
    Kann mir bitte jemand weiterhelfen?
    Geändert von chris_head (12.01.10 um 13:39 Uhr)
     

Ähnliche Themen

  1. XML mittels XSLT in Java Properties umwandeln
    Von Fenrizwolf im Forum XML Technologien
    Antworten: 6
    Letzter Beitrag: 23.10.09, 18:55
  2. mittels XSLT in mehrere Zieldateien?
    Von UkAtZ im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 26.08.08, 15:17
  3. Antworten: 7
    Letzter Beitrag: 29.02.08, 14:22
  4. mittels C++ Icon auf Desktop erzeugen
    Von sand13r im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 06.12.07, 11:13
  5. Antworten: 3
    Letzter Beitrag: 21.09.07, 14:35