« XSL-Start

Neue Elemente und Attribute

Lernziel

Die Bezeichnungen von Attributen und Links passen nicht immer zum Ausgabeformat, in unserem Fall HTML. Deshalb kann es vorkommen, dass neue Elemente und Attribute generiert werden müssen. Wie das funktioniert, wird hier demonstriert.

Handlungsanweisungen

Aufgaben:
  1. Erstellen Sie eine Linksammlung in XML mit Beschreibung und dem Link.
  2. Der Link sollte ein grafischer Link sein.

Die XSL-Datei

Ein Bild-Element für HTML aus diversen XML-Elementen zusammensetzten, die Übersetzung (Transformation) sieht dann wie folgt aus:

1
2
3
4
5
<img>
  <xsl:attribute name="src">
    <xsl:value-of select="@quelle"/>
  </xsl:attribute>
</img>

Hier sehen Sie den Code-Ausschnitt für das Erzeugen eines Links.

1
2
3
4
5
6
<a>
  <xsl:attribute name="href">
    <xsl:value-of select="ersteller"/>
  </xsl:attribute>
  <xsl:value-of select="ersteller"/>
</a>

Mit den eben gezeigten Anweisungen erzeugen wir ein Attribut für die umklammernden Elemente. Im ersten Fall also img, im zweiten a. Für img wählen wir das Attribut src, da so die Bildquelle in HTML definiert wird, für a verwenden wie ebenfalls die XSL-Anweisunge xsl:atttribute nur dass das Anker-Element im HTML ein href benötigt. Innerhalb des xsl:attribute-Elementes steht der konkrete Inhalt des jeweiligen Attributes. Also einmal die Bildquelle (@quelle) und einmal der Link (Ersteller) – siehe Zeilen 2 und 5.

Die Verwendung einer Variablen

1
2
3
4
5
6
7
<!--Variable definieren-->
<xsl:variable name="email" select="@email"/>

<!--Variable in Attribut einfügen-->
<a href="mailto:{$email}">
     <xsl:value-of select="."/>
</a>

Die Definition einer Variablen erfolgt über das xsl-Element xsl:variable und deren Wiederverwendung erfolgt mit einem $-Zeichen vor dem Variablennamen und dem Einschluss in geschweifte Klammern.