1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

xml + xslt Problem

  • alexj
  • 4. Juli 2005 um 20:06
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • alexj
    Punkte
    125
    Beiträge
    17
    • 4. Juli 2005 um 20:06
    • #1

    Also ich habe ein xml-Dokument das ich in mittels xslt in ein anderes xml-Dokument transformieren muss.
    Und dabei habe ich folgendes Problem

    original-xml:
    <publication>
    <titel>123</titel>
    <author>Müller</author>
    <author>Maier</author>
    <author>xxxx</author>
    ....
    </publication>

    Transformiertes xml-Dokument:
    <Publikation>
    <Titel>123</Titel>
    <Autor>Müller Maier xxx</Autor>
    ....
    </Publikation>

    Also wie fasse ich die verschiedenen <authors> zusammen?

    danke, alex

  • mas
    Punkte
    751
    Beiträge
    143
    • 5. Juli 2005 um 11:44
    • #2

    servus, hab bis jetzt noch nicht wirklich viel mit XML/XSLT gemacht, aber so ganz spontan würde ich das mal so machen:

    Code
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:template match="/">
    		<Publikation>
    			<xsl:apply-templates select="//titel"/>
    			<Autor>
    				<xsl:apply-templates select="//author">
    					<xsl:sort order="ascending" select="."/>
    				</xsl:apply-templates>
    			</Autor>
    		</Publikation>
    	</xsl:template>
    
    
    	<xsl:template match="titel">
    		<Titel>
    			<xsl:value-of select="."/>
    		</Titel>
    	</xsl:template>
    
    
    	<xsl:template match="author">
    		<xsl:value-of select="."/>
    		<xsl:text> </xsl:text>
    	</xsl:template>
    </xsl:stylesheet>
    Alles anzeigen

    geht aber sicher noch um einiges eleganter (vor allem bleibt bei dieser version nach dem letzten Author noch ein Leerzeichen) - in dieser Version werden die Autoren auch gleich noch sortiert
    aja, schau Dir doch mal <xsl:for-each ... > an

    mfg
    mas

  • mas
    Punkte
    751
    Beiträge
    143
    • 5. Juli 2005 um 11:55
    • #3

    ok, so müsste es jetzt passen:

    Code
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:template match="/">
    		<Publikation>
    			<Titel>
    				<xsl:apply-templates select="//titel"/>
    			</Titel>
    			<Autor>
    				<xsl:apply-templates select="//author">
    					<xsl:sort order="ascending" select="."/>
    				</xsl:apply-templates>
    			</Autor>
    		</Publikation>
    	</xsl:template>
    
    
    	<xsl:template match="titel">
    		<xsl:value-of select="."/>
    	</xsl:template>
    
    	<xsl:template match="author">
    		<xsl:value-of select="."/>
    		<xsl:if test="not (position()=last())">
    			<xsl:text>,</xsl:text>
    		</xsl:if>
    	</xsl:template>
    </xsl:stylesheet>
    Alles anzeigen
  • H2O
    Punkte
    375
    Beiträge
    74
    • 5. Juli 2005 um 13:35
    • #4

    vielleicht hilft dir diese seite.

    lg
    H2O

  • alexj
    Punkte
    125
    Beiträge
    17
    • 5. Juli 2005 um 20:45
    • #5

    Danke für die rasche Hilfe!

    alex

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum