Announcement

Collapse
No announcement yet.

ausgabeprobleme mit xsl

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ausgabeprobleme mit xsl

    Hallo,
    ich bin gerade dabei mich das erste mal mit xml und xsl zu beschäftigen. Leider bin ich im Augenblick ein bisschen ratlos und ich denke, dass ich die Logik falsch interpretiere.
    ich habe folgende Dateien:
    Code:
    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <?xml-stylesheet type="text/xsl" href="./meine.xsl"?>
    <Handbuch>
    	<Kapitel NR="1" Ueberschrift="Kapitel1">
    		<Textkoerper>
    			<inhalt>
    			absatz1
    			</inhalt>
    		</Textkoerper>
    		<Textkoerper>
    			<inhalt>
    						absatz2
    			</inhalt>
    		</Textkoerper>
    		<Textkoerper>
    			<inhalt>
    						absatz3
    			</inhalt>
    		</Textkoerper>
    		<Textkoerper>
    			<inhalt>
    						absatz4
    			</inhalt>
    		</Textkoerper>		
    		<Textkoerper>
    			<inhalt>
    						absatz5
    			</inhalt>
    		</Textkoerper>	
    	</Kapitel>
    	<Kapitel NR="2" Ueberschrift="Kapitel2">
    		
    	</Kapitel>
    	<Kapitel NR="3" Ueberschrift="Kapitel3">
    		<Kapitel NR="3.1" Ueberschrift="Kapitel 3.1">
    	
    		</Kapitel>
    		<Kapitel NR="3.2" Ueberschrift="Kapitel 3.2">
    	
    		</Kapitel>
    		<Kapitel NR="3.3" Ueberschrift="Kapitel 3.3">
    	
    		</Kapitel>
    		<Kapitel NR="3.4" Ueberschrift="Kapitel 3.4">
    	
    		</Kapitel>
    		<Kapitel NR="3.5" Ueberschrift="Kapitel 3.5">
    	
    		</Kapitel>
    	</Kapitel>
    
    
    </Handbuch>
    und die xsl:
    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
    
    <xsl:template match="/">
    
    	<h1>Das ist der erste Versuch für das Template</h1>
    		
    	<xsl:apply-templates/> 
    
    </xsl:template>
    
    
    <xsl:template match="Handbuch"> 
    	<xsl:for-each select="Kapitel"> 
    		<h2>
    			<xsl:value-of select="@NR"/>. <xsl:value-of select="@Ueberschrift"/>
    		</h2>
    		<xsl:apply-templates/>
    				
    	</xsl:for-each>
    
    </xsl:template>
    
    
    <xsl:template match="Kapitel"> 
    
    	<xsl:for-each select="Textkoerper">
    		<p>
    			<xsl:value-of select="inhalt"/>
    		</p>	
    	</xsl:for-each>
    
    </xsl:template>
    
    </xsl:stylesheet>
    Ich glaube es ist ersichtlich was ich erreichen möchte. Leider ist es jetzt so, dass er die oberen Absatz Text alle aneinander klatscht und die unteren Unterkapitel gar nicht darstellt.
    Falls es noch andere Mäkel gibt, wie die Header Informationen oÄ bin ich für jeden Tipp dankbar!

    mfg
    Werner02

  • #2
    Hallo,

    transformiere dein XML doch mal hiermit ...
    Code:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
    <xsl:template match="/"> <!-- oder auch: <xsl:template match="Handbuch"> -->
    	<h1>Das ist der erste Versuch für das Template</h1>
    	<xsl:apply-templates/>
    </xsl:template>
    
    <xsl:template match="Kapitel">
    	<h2>
    		<xsl:value-of select="@NR"/>. <xsl:value-of select="@Ueberschrift"/>
    	</h2>
    	<xsl:apply-templates/>
    </xsl:template>
    
    <xsl:template match="Textkoerper">
    	<p><xsl:value-of select="inhalt"/></p>
    </xsl:template>
    
    </xsl:stylesheet>
    ... und sieh mal was dabei herauskommt. Vielleicht hilft dir das schon weiter.

    Comment


    • #3
      herzlichen Dank, so funktioniert es!

      Allerdings frag ich mich, wie ich auf den anderen Quatsch gekommen bin. Sieht so viel logischer aus

      Comment

      Working...
      X