Ich dreh gleich durch :-( Frage zu XML-Basics

Dickus

Grünschnabel
HeyHo,

da bin ich wieder und ärger mich noch immer über XML.

Ich habe folgende zwei kurze Quelltexte erstellt:

daten.xml
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="daten.xsl" type="text/xsl"?>
<daten>
    <titelleiste>Titel</titelleiste>
    <item_01>Item_01</item_01>
    <item_02>Item_02da</item_02>
</daten>

daten.xsl
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output encoding="ISO-8859-1" indent="yes" method="xml" omit-xml-declaration="yes"/>
    <xsl:template match="daten">
        <html>
            <head>
                <title>
                    <xsl:value-of select="titelleiste"/>
                </title>
            </head>
            <body>
                <xsl:apply-templates/>
                <!-- Daten fuers Root-Element -->
            </body>
        </html>
    </xsl:template>
    <xsl:template match="item_01">
        <xsl:value-of select="."/>
    </xsl:template>
    <xsl:template match="item_02">
        <xsl:value-of select="."/>
    </xsl:template>
</xsl:stylesheet>

Als HTML-Datei bekomme ich dann:

Code:
<html xmlns:fo="http://www.w3.org/1999/XSL/Format">
<head>
<title>Titel</title>
</head>
<body>TitelItem_01Item_02</body>
</html>

Wieso verdammte Sch**..OK, nicht fluchen...

Also, hier mal meine Fragen zu den ganz simplen XML-Vorgängen:
Wieso steht der Titel auch noch im body ?
Bestimmt weil ich bei den Daten fürs Root-Element
<xsl:apply-templates/> geschrieben habe....
Kann ich das eingrenzen, so daß nur der Titel angezeigt wird ?

Ich habe absolt keinen Überblick mehr, warum außerhalb des Bodys
die Befehle nicht "gesehen" werden. Ich kann doch nicht alles in den body schreiben...oder ?

Wenn ich den unteren Teil der XSL-Datei auskommentiere
Code:
...
</xsl:template>
    <!--
    <xsl:template match="item_01">
        <xsl:value-of select="."/>
    </xsl:template>
    <xsl:template match="item_02">
        <xsl:value-of select="."/>
    </xsl:template>
-->
...
dann generiert er mir genau die gleiche HTML-Datei.
Ist doch nonsens. Ich laufe gleich Amok.
Es gibt Tage, da ist Programmieren echt für´n !

Bitte bitte keine schlauen Sprüche wie
"surf doch zu bla bla und lese das und das...."
ich habe hier 5 XML-Bücher und kapiere jetzt echt überhaupt nichts mehr *heul*...

Ein bissel Hilfe wäre echt nicht schlecht

Bye von der Küste
Souli
 
Hallo!

Versuchs mal so:

Data.xml
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="./Data.xsl"?>
<daten>
    <titelleiste>Titel</titelleiste>
    <item_01>Item_01</item_01>
    <item_02>Item_02da</item_02>
</daten>

Data.xsl
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
      <html>
         <head>
               <title>
                  <xsl:value-of select="daten/titelleiste"/>
               </title>
         </head>
         <body>
            <!-- Daten fuers Root-Element -->
            <xsl:value-of select="daten/item_01"/><br/>
            <xsl:value-of select="daten/item_02"/>
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>

HTH
Gruß Tom
 
Juhuuuu !

Danke ! *niederknie*
Es hat selbst bei mir jetzt "pling" gemacht !
Ich hatte mich u.a. auch von dem Begriff "Root-Element" etwas in die
Irre führen lassen. In einem meiner Bücher (XML für Print und Screen)
ist in der Tat eine (zumindest für mich) recht unverständliche Beschreibung
vorgenommen worden.

Also, herzlichen Dank nochmal !

Souli
 

Neue Beiträge

Zurück