lll: Aufzählungen

Hi,

ich habe als xml Dokument folgendes:

Bei der XSL bin ich zur Zeit so weit:

Mein Ziel ist es das alle 4 Musiktitel untereinander stehen unter der Überschrift Titel und von 1 bis 4 durchnummeriert sind, leider bekomme ich das nicht hin, wenn ich es im Browser anschaue sieht es so aus:

Würde mich über jede Hilfe sehr freuen. :)

  1. Hi lll,

    (1) Den Source als Bilder finde ich nicht besonders hilfreich für helfende.
    (2) Ist dir klar warum Title jedes mal Ausgeben wird?
    (3) Folgendes sollte dir weiterhelfen. http://www.w3schools.com/xsl/xsl_apply_templates.asp

    MfG
    Otto

    1. Ok, habe jetzt einige Änderungen durchgeführt und es sieht jetzt so aus:

      Diese ganzen Zwischenzeilen müssten jetzt noch verschwinden und die ersten vier Titel sollten der Reihe nach mit 1-4 aufgezählt werden. Was muss ich da ändern?

      Hier mein XSL:

      <?xml version="1.0"?>  
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
      	<xsl:template match="audio">  
      		<html>  
      			<head>  
      				<title>Audio</title>  
      			</head>  
      			<body>  
      				<b>Titel: </b>  
      				<xsl:apply-templates/>				  
      			</body>  
      		</html>  
      	</xsl:template>  
      	  
      	<xsl:template match="album">  
      	 	<xsl:apply-templates select="titel"/>  
      	</xsl:template>  
      	  
      	<xsl:template match="titel">  
        		<ol><li><span>  
        		<xsl:value-of select="."/></span>  
      		<br /></li></ol>  
      	</xsl:template>  
        
      	<xsl:template match="hoerbuch">  
      			<b>Hoerbuecher:</b>  
      			<ol><li>  
      			<xsl:apply-templates select="name" />,	  
      			<xsl:apply-templates select="preis"/>  
      			</li></ol>  
      	</xsl:template>  
        
      </xsl:stylesheet>
      

      und hier meine XML Datei:

      <?xml version="1.0" encoding="UTF-8"?>  
      <?xml-stylesheet type="text/xsl" href="audio.xsl"?>  
      <!DOCTYPE audio SYSTEM "audio.dtd">  
        
      <audio>  
      	<musik>  
      		<album>  
      			<titel>Samain Night </titel>  
      			<titel>Ancient Pipes </titel>  
      			<interpret>Loreena McKennitt</interpret>  
      			<preis waehrung="Euro">19.95 </preis>  
      		</album>  
      	</musik>  
      	<musik>  
      		<album>  
      			<titel>Astronomy Domine</titel>  
      			<titel> Candy And A Currant Bun</titel>  
      			<interpret>Pink Floyd</interpret>  
      			<preis waehrung="Euro">6.95</preis>  
      		</album>  
      	</musik>  
      	<hoerbuch>  
      		<name>Der Schwarm</name>  
      			<genre>Science Fiction</genre>  
      			<author>Frank Schätzing</author>  
      			<preis>13.95 Euro</preis>  
      			<dauer>595</dauer>  
      	</hoerbuch>  
      </audio>
      
      1. Hi lll,

        Hier mein XSL:

        <?xml version="1.0"?>

        ...
        <xsl:template match="titel">
           <ol><li><span>
           <xsl:value-of select="."/></span>
        <br /></li></ol>
        </xsl:template>
             ...

        
        >   
          
        schau dir diesen Abschnitt mal genau an, dann sollte dir auffallen warum das immer mit eins beginnt.  
          
        Wenn nicht schau dir mal den generierten HTML-Code an, dann wird es dir klar sein. Anschauen kannst du dir den z.B. mit der Firefox Web Developer Toolbar; Im Menü View Source gibt es einen Punkt View Generated Source.  
          
        MfG  
        Otto
        
        1. schau dir diesen Abschnitt mal genau an, dann sollte dir auffallen warum das immer mit eins beginnt.

          Wenn nicht schau dir mal den generierten HTML-Code an, dann wird es dir klar sein. Anschauen kannst du dir den z.B. mit der Firefox Web Developer Toolbar; Im Menü View Source gibt es einen Punkt View Generated Source.

          Ja das Auzählungszeichen wird vor jedem Titel neu eingefügt:
          <ol><li><span>Samain Night </span><br></li></ol><ol><li><span>Ancient Pipes </span><br></li></ol>
          Aber was ich dagegen tuen kann weiß ich leider nicht. :(

          1. Hi lll,

            Ja das Auzählungszeichen wird vor jedem Titel neu eingefügt:
            <ol><li><span>Samain Night </span><br></li></ol><ol><li><span>Ancient Pipes </span><br></li></ol>
            Aber was ich dagegen tuen kann weiß ich leider nicht. :(

            Gut. Das hast du richtig erkannt. Indem du das entsprechende template apply zwischen den öffnenden und schließenden ol schreibst.

            MfG
            Otto

            1. Gut. Das hast du richtig erkannt. Indem du das entsprechende template apply zwischen den öffnenden und schließenden ol schreibst.

              Ok danke, habe ich gemacht und jetzt sieht es schon sehr gut aus:

              Das Problem ist jetzt nur das ol Tag über alles geht und dadurch auch alles ab Hoerbucher mit eingerückt wird. Kann ich irgendwie das ganze wieder etwas nach links verschieben?

              <?xml version="1.0"?>  
              <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
              	<xsl:template match="audio">  
              		<html>  
              			<head>  
              				<title>Audio</title>  
              			</head>  
              			<body>  
              				<b>Titel: </b>  
              				<ol><xsl:apply-templates/>	</ol>	  
              			</body>  
              		</html>  
              	</xsl:template>  
              	  
              	<xsl:template match="album">  
              	 	<xsl:apply-templates select="titel"/>  
              	</xsl:template>  
              	  
              	<xsl:template match="titel">  
                		<li><span>  
                		<xsl:value-of select="."/></span>  
              		</li>  
              	</xsl:template>  
                
              	<xsl:template match="hoerbuch">  
              			<br /><b>Hoerbuecher:</b>  
              			<ol><br /><li>  
              			<xsl:apply-templates select="name" />,	  
              			<xsl:apply-templates select="preis"/>  
              			</li></ol>  
              	</xsl:template>  
                
              </xsl:stylesheet>
              
              1. Hi lll,

                Ok danke, habe ich gemacht und jetzt sieht es schon sehr gut aus:

                Nicht ganz, ich schrieb um das entsprechende. Also jenes welches deine Titles abarbeitet.

                Wie wäre es den mit diese Stelle? Habe es nicht getestet.

                <?xml version="1.0"?>

                ...
                <xsl:template match="album">
                <ol><xsl:apply-templates select="titel"/></ol>
                </xsl:template>
                ...

                »»

                  
                MfG  
                Otto
                
                1. Wie wäre es den mit diese Stelle? Habe es nicht getestet.

                  <?xml version="1.0"?>

                  ...
                  <xsl:template match="album">
                  <ol><xsl:apply-templates select="titel"/></ol>
                  </xsl:template>
                  ...
                  »»

                  Hatte ich auch getestet, aber dann siehst immer so aus:  
                  ![](http://img.skitch.com/20100117-rfymr2kkdtkj1jj74f4qb1mjri.jpg)  
                  Hast du noch ne Idee?