XSLT
XSLT, Extensible Stylesheet Language Transformations er et XML-baseret sprog til transformering af XML-dokumenter og en del af W3C-standarden XSL.
XSLT 1.0 blev en W3C web standard den 16. november 1999, XSLT 2.0 den 23. januar 2007 og XSLT 3.0 den 8. juni 2017.
Eksempler
[redigér | rediger kildetekst]Disse eksempler bruger følgende indgående XML-dokument:
<?xml version="1.0" ?>
<persons>
<person username="JS1">
<name>John</name>
<family-name>Smith</family-name>
</person>
<person username="MI1">
<name>Morka</name>
<family-name>Ismincius</family-name>
</person>
</persons>
Eksempel 1 (transformering fra XML til XML)
[redigér | rediger kildetekst]Dette XSLT-stilark indeholder skabeloner til at transformere XML-dokumentet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/persons">
<root>
<xsl:apply-templates select="person"/>
</root>
</xsl:template>
<xsl:template match="person">
<name username="{@username}">
<xsl:value-of select="name" />
</name>
</xsl:template>
</xsl:stylesheet>
Evalueringen resulterer i et nyt XML-dokument med en anden struktur:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<name username="JS1">John</name>
<name username="MI1">Morka</name>
</root>
Eksempel 2 (transformering fra XML til XHTML)
[redigér | rediger kildetekst]Dette XSLT-stilark indeholder skabeloner til at transformere XML-dokumentet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
<xsl:template match="/persons">
<html>
<head> <title>Testing XML Example</title> </head>
<body>
<h1>Persons</h1>
<ul>
<xsl:apply-templates select="person">
<xsl:sort select="family-name" />
</xsl:apply-templates>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="person">
<li>
<xsl:value-of select="family-name"/><xsl:text>, </xsl:text><xsl:value-of select="name"/>
</li>
</xsl:template>
</xsl:stylesheet>
Med XML-inputfilen vist ovenfor resulterer det i følgende XHTML (Whitespace-tegn) er justeret her for klarhedens skyld):
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> <title>Testing XML Example</title> </head>
<body>
<h1>Persons</h1>
<ul>
<li>Ismincius, Morka</li>
<li>Smith, John</li>
</ul>
</body>
</html>
Denne XHTML genererer outputtet nedenfor, når den gengives i en webbrowser.

For at en webbrowser kan anvende en XSL-transformation på et XML-dokument, der vises, kan en XML-stilarkbehandlingsinstruktion indsættes i XML. Så hvis stylesheetet i eksempel 2 ovenfor fx var tilgængeligt som "example2.xsl", kunne følgende instruktion tilføjes til den oprindelige indgående XML:[1]
<?xml-stylesheet href="example2.xsl" type="text/xsl" ?>
I dette eksempel er text/xsl teknisk set forkert i henhold til W3C-specifikationerne[1] (som siger, at typen skal være application/xslt+xml), men det er den eneste medietype, der er bredt understøttet på tværs af browsere fra 2009, og situationen er uændret i 2021.
Referencer
[redigér | rediger kildetekst]- 1 2 "XSL Transformations (XSLT) Version 1.0: W3C Recommendation – Embedding Stylesheets". W3C. 16. november 1999. Hentet 20. september 2016.
Eksterne henvisninger
[redigér | rediger kildetekst]- XSL Transformations (XSLT) Version 2.0
- W3schools om XSLT
- XSLT Introduktion (på tysk)
- XSLT Reference (på tysk)
- XSLT og XPath Reference Arkiveret 2. juni 2010 hos Wayback Machine (på tysk)