josef stebegg: xlst-anwendung

ave forum.

1.
Ich versuche gerade eine Seite in xml/xsl(t) nach zu bauen. Dazu war mir das Beispiel "produktnews" aus selfhtml8 eine passende Vorlage. Bei meiner mit saxon erzeugten html ist aber alles blau. Ich kann aber keinen wesentlichen Unterschied erkennen (ob man p oder div schreibt ist auch egal).
---
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="pa.xsl" ?>
 <pa>
  <chronologie>
   <datum>datum :</datum>
   <ereignis>blau blau blau</ereignis>
   <datum>datum :</datum>
   <ereignis>blau blau blau -<nam>rot rot rot</nam></ereignis>
   <datum>datum :</datum>
   <ereignis>
   <nam>rot rot rot rot rot rot rot</nam>
   </ereignis>
   <datum>datum :</datum>
   <ereignis>
   blau blau blau blau blau blau blau blau blau blau blau blau
   </ereignis>
  </chronologie>
 </pa>
---
<?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="/">
 <html><head></head>
 <body style="font-family:Verdana; font-size:1em; color:#000080;">
 <xsl:apply-templates />
 </body></html>
</xsl:template>

<xsl:template match="chronologie">
 <div style="font:0.95em/120% Verdana;"><xsl:apply-templates /></div>
</xsl:template>

<xsl:template match="datum">
 <div style=" text-align:right; font-style:italic; width:125px; padding-top:1px; float:left;">
<xsl:value-of select="." /></div>
</xsl:template>

<xsl:template match="ereignis">
 <div style="margin-left:132px; border-bottom:solid #ccc 1px; margin-right:10px;">
<xsl:value-of select="." /></div>
</xsl:template>

<xsl:template match="nam">
 <span style="font-weight:bold; color:#ff0000;"><xsl:value-of select="." /></span>
</xsl:template>

</xsl:stylesheet>
---
2.
Dieses (stark verkuerzte) Beispiel (ohne Tabellen) schaut bei den neuen Browsern noch gleich aus. Wenn man aber z.B. den text(ereignis) um ein bild fliesen laesst, dann geht das leider nur mit dem ie.
---
3.
Wie kann man bitte ein pulldown-menue (<form><select><option>......) mit xslt realisieren.
---

josef

  1. Hi!

    Wie kann man bitte ein pulldown-menue (<form><select><option>......) mit xslt realisieren.

    Mit XSLT gar nicht. Du wandelst mit Deinem Stylesheet doch in HTML um, oder? (Dann solltest Du auch eigentlich ein output-Element drin stehen haben - wenn das nicht sogar required ist). Ergo erstellst Du das Pulldown-Menü mit HTML.

    VG Simon

  2. Hallo,

    Ich versuche gerade eine Seite in xml/xsl(t) nach zu bauen. Dazu war mir das Beispiel "produktnews" aus selfhtml8 eine passende Vorlage. Bei meiner mit saxon erzeugten html ist aber alles blau.

    Na, nicht ganz, die Rahmen sind grau, wie es auch beschrieben steht.

    Ich kann aber keinen wesentlichen Unterschied erkennen (ob man p oder div schreibt ist auch egal).

    Ich auch nicht, soll ja auch so sein:

    <body style="font-family:Verdana; font-size:1em; color:#000080;">

    So ist alles blau, wenn Du nicht in einem Speziellem Falle etwas anderes angibst. Aber ich kenn' das, man wird mit der Zeit betriebsblind und sieht den Wald vor lauter Bäumen nicht ;-)


    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    Ich würde hier noch folgendes einbauen:

    <xsl:output method="xml"
            encoding="iso-8859-1"
            doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
            doctype-public="-//w3C//DTD XHTML 1.0 Strict//EN" />

    Je nach Geschmack dann in Transitional bzw evt auch noch method="html" anpassen.


    Dieses (stark verkuerzte) Beispiel (ohne Tabellen) schaut bei den neuen Browsern noch gleich aus. Wenn man aber z.B. den text(ereignis) um ein bild fliesen laesst, dann geht das leider nur mit dem ie.

    Da müßte man mehr Informationen haben. Vielleicht eine komplette Datei(bitte nur als Link, danke)?
    (Wenn es geht, heißt das, kann ja auch Firmenintern o.ä. sein)


    Wie kann man bitte ein pulldown-menue (<form><select><option>......) mit xslt realisieren.

    Was genau möchtest Du wissen?
    Schleifen würde ich in dem Fall mit xsl:for-each realisieren (z.B. um die options zu füllen)
    Aber ich vermute mal, Dir ist nicht so ganz klar, wie man auf einfache Art und Weise die Attributwerte füllt, ja?
    z.B. bei <a href="pfad/zum/Ziel">blabla</a> ist "blabla" einfach zu füllen, den pfad/zum/Ziel bekommst Du z.B. so rein:

    -----

    <?xml version="1.0"?>
    <document>
    <anchorpath>pfad/zum/Ziel</anchorpath>
    <anchor path="pfad/zumZiel" />
    </document>

    -----

    <?xml version="1.0"?>
    usw. blabla ;-)

    <xsl:template  match="anchorpath">
        <a href="{text()}">
         blablabla
        </a>
    </xsl:template>
    <xsl:template  match="anchor">
        <a href="@path">
         blablabla
        </a>
    </xsl:template>

    usw. blabla ;-)
    ------

    Hier funktioniert so etwas (mit xsltproc von der LibXSLT vom GNOME Projekt), aber wie heist es so schön: "Your mileage may vary" ;-)

    so short

    Christoph Zurnieden