Jürgen Seebacher: Link Frage

Habe da eine Frage zu XML (XSLT):

Wie kann ich unter XSLT folgendes umse´tzen:

<a href="http://www.rpa-online.net">RPA - Da nxt generation</a>

Mir ist kommt es darauf an was zwischen den <a> und dem </a> steht! Bisher kann ich es nur soweit, dass ich den Pfad als Link ausgeben kann, aber keinen Beschreibungstext. Habe in der SelfHTML 8 gesucht aber keine Infos dazu gefunden.

Bitte helft mir

  1. Hallo Jürgen,

    Mir ist kommt es darauf an was zwischen den <a> und dem </a> steht! Bisher kann ich es nur soweit, dass ich den Pfad als Link ausgeben kann, aber keinen Beschreibungstext. Habe in der SelfHTML 8 gesucht aber keine Infos dazu gefunden.

    Hier mal ein Beispiel:

    Die XML-Datei:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE verweise [
      <!ELEMENT verweise (link*)>
      <!ELEMENT link (#PCDATA)>
      <!ATTLIST link
       ziel CDATA #REQUIRED
      >
    ]>
    <?xml-stylesheet type="text/xsl" href="text.xsl" ?>
    <verweise>
    <link ziel="ziel.html">Inhalt1</link>
    <link ziel="ziel2.html">Inhalt2</link>
    </verweise>

    Und die zugehörige xsl-Datei könnte so aussehen:

    <?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>
    <xsl:apply-templates />
    </body></html>
    </xsl:template>

    <xsl:template match="link">
    <!-- Element erzeugen -->
    <xsl:element name="a">

    <!-- Attribut setzen -->
    <xsl:attribute name="href"><xsl:value-of select="@ziel" /></xsl:attribute>

    <!-- Setzt den Inhalt des Elementes -->
    <xsl:value-of select="." />
    </xsl:element>
    <br />
    </xsl:template>
    </xsl:stylesheet>

    Viele Grüße

    Antje

    1. Hallo Antje,

      Und die zugehörige xsl-Datei könnte so aussehen:

      Ja, könnte, aber man muss sich es nicht schwerer machen als nötig ;-)

      <xsl:template match="link">
      <a href="{@ziel}"><xsl:value-of select="." /></a>
      </xsl:template>

      <xsl:element name="...">  würde ich bei HTML als Zielformat nicht verwenden, dazu hat man schließlich die "literal result elements" d.h. in diesem fall, die HTML elemente selbst.

      Grüße
      Thomas