Fotografie & Lifestyle

Achtung Kopfsalat – von XML in XML mittels XSLT

Beliebt im Austausch von Daten ist das XML-Format (Extensible Markup Language). Es bietet die Vorteile einer leserlichen Struktur von Daten im Klartext. Oftmals ist in nun gefordert, dass Daten von einem Format in ein anderes übertragen werden sollen. Kann man dabei eine Transformation von einer XML in eine andere vornehmen, so bietet es sich an in diesem „Universum“ zu bleiben und eine weitere XML zu verwenden. Eine solche Datei nennt sich XSL und wird zur Transformation verwendet XSLT.

Mit der XSL wird in der bekannten XML-Syntax Logik programmiert, welche einer richtigen Programmiersprache in nichts nachsteht.

Nachfolgend möchte ich euch noch ein kurzes Beispiel zeigen, welches die Mächtigkeit einer solchen XSL-Transformation erahnen lässt:

Eingangs-XML

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="sales-check-transform.xsl"?>
<basket_list>
  <product price="3.49€">
    <name language="de">Butter</name>
    <name language="en">butter</name>
  </product>
  <product price="0.98€">
    <name language="de">Margarine</name>
  </product>
  <product price="2.99€">
    <name language="de">Lätta</name>
  </product>
</basket_list>

Transformations-XSL

<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml"/>
  <xsl:template match="/">
    <sales_check>
      <xsl:for-each select="basket_list/product">
        <item>
          <bought_product>
            <de_name>
              <xsl:value-of select="./name[@language='de']" />
            </de_name>
            <xsl:if test="./name[@language='en'] != ''">
              <en_name>
                <xsl:value-of select="./name[@language='en']" />
              </en_name>
            </xsl:if>
          </bought_product>
        </item>
      </xsl:for-each>
    </sales_check>
  </xsl:template>
</xsl:stylesheet>

Ergebnis

<?xml version="1.0" encoding="utf-8"?>
<sales_check xmlns="http://www.w3.org/1999/xhtml">
  <item>
    <bought_product>
      <de_name>Butter</de_name>
      <en_name>butter</en_name>
    </bought_product>
  </item>
  <item>
    <bought_product>
      <de_name>Margarine</de_name>
    </bought_product>
  </item>
  <item>
    <bought_product>
      <de_name>Lätta</de_name>
    </bought_product>
  </item>
</sales_check>

Nah, überzeugt? Noch nicht? Dann nenne ich noch ein paar weitere Vorteile dieses Verfahrens:

Fazit: Definitiv eines Blickes wert wenn es um die Anforderung XML -> XML geht. Am besten ein eigenes Bild machen. Über eure Erfahrungen freue ich mich sehr.

Author: JaXt0r

prev
Vorheriger Artikel

»Kicon« Koken Icon Webfont

next
Nächster Artikel

Halloween im Sommer