XSLT Transformation

In diesem Beitrag geht es um XSLT Transformations. XSLT dient dazu, ein XML Dokument in andere Dokumenttypen zu übersetzen. Man kann mithilfe von XSLT z.B. ein XML Dokument in ein HTML Dokument übersetzen (Siehe Beispiel). Aber auch andere Formate wie etwa ein PDF oder ein einfaches Textdokument sind möglich.

Wir schauen uns zum besseren Verständnis einmal folgendes Beispiel an. Wir sehen hier das XSLT Dokument, welches die XML Datei in HTML übersetzt.

XSLT Dokument

<?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>
  <body>
  <h2>Meine CD Sammlung 1c</h2>
      <xsl:for-each select="medialib">
        <xsl:for-each select="discs">
            <xsl:for-each select="disc">
                <h3>Künstler: <xsl:value-of select="/medialib/artists/artist[@id=current()/@artist]/@name"/></h3>
                <h4><xsl:value-of select="@title"/></h4>
                <p><strong>Titel</strong></p>
                <xsl:for-each select="song">
                    <p><xsl:value-of select="@title"/></p>
                </xsl:for-each>
            </xsl:for-each>
        </xsl:for-each>
      </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

XML Dokument

<medialib>
  <artists>
    <artist id="A1" name="Queen"/>
  </artists>
  <discs>
    <disc artist="A1" title="A Kind Of Magic">
      <song title="One Vision" artist="A1"/>
      <song title="A Kind Of Magic" artist="A1"/>
      <song title="One Year Of Love" artist="A1"/>
      <song title="Pain Is So Close To Pleasure" artist="A1"/>
      <song title="Friends Will Be Friends" artist="A1"/>
      <song title="Who Wants To Live Forever" artist="A1"/>
      <song title="Gimme The Prize" artist="A1"/>
      <song title="Don't Lose Your Head" artist="A1"/>
      <song title="Princes Of The Universe" artist="A1"/>
    </disc>
    <disc artist="A1" title="Innuendo">
      <song title="Innuendo" artist="A1"/>
      <song title="I'm Going Slightly Mad" artist="A1"/>
      <song title="Headlong" artist="A1"/>
      <song title="I Can't Live With You" artist="A1"/>
      <song title="Don't Try So Hard" artist="A1"/>
      <song title="Ride The Wild Wind" artist="A1"/>
      <song title="All God's People" artist="A1"/>
      <song title="These Are The Days Of Our Lives" artist="A1"/>
      <song title="Delilah" artist="A1"/>
      <song title="The Hitman" artist="A1"/>
      <song title="Bijou" artist="A1"/>
      <song title="The Show Must Go On" artist="A1"/>
    </disc>
  </discs>
</medialib>

HTML Output

<html><body>
<h2>Meine CD Sammlung 1c</h2>
<h3>Künstler: Queen</h3>
<h4>A Kind Of Magic</h4>
<p><strong>Titel</strong></p>
<p>One Vision</p>
<p>A Kind Of Magic</p>
<p>One Year Of Love</p>
<p>Pain Is So Close To Pleasure</p>
<p>Friends Will Be Friends</p>
<p>Who Wants To Live Forever</p>
<p>Gimme The Prize</p>
<p>Don't Lose Your Head</p>
<p>Princes Of The Universe</p>
<h3>Künstler: Queen</h3>
<h4>Innuendo</h4>
<p><strong>Titel</strong></p>
<p>Innuendo</p>
<p>I'm Going Slightly Mad</p>
<p>Headlong</p>
<p>I Can't Live With You</p>
<p>Don't Try So Hard</p>
<p>Ride The Wild Wind</p>
<p>All God's People</p>
<p>These Are The Days Of Our Lives</p>
<p>Delilah</p>
<p>The Hitman</p>
<p>Bijou</p>
<p>The Show Must Go On</p>
</body></html>

Dieses Prinzip lässt sich natürlich auch auf andere Dokumenttypen adaptieren. Z.B. statt HTML Output könnte ein PDF oder eine Textdatei ausgegeben werden.

Marvin Sengera

Marvin Sengera

Hey! Ich bin Marvin Sengera, Inhaber der Internetagentur "Binärfabrik" aus Paderborn. Ich habe mein Bachelorstudium Informatik mit Schwerpunkt Industriespionage an der Hochschule Hamm Lippstadt abgeschlossen und absolviere derzeit meinen Master in Fachrichtung "Technical Entrepreneurship and Innovation". Ich beschäftige mich rund um die Themen Informatik, Innovation & Unternehmensgründung.

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.