XSLT

programmeringssprog From Wikipedia, the free encyclopedia

Remove ads

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

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)

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)

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.

Thumb
Renderet XHTML-outputfil genereret fra en XML-inputfil og en XSLT-transformationsfil.

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.

Remove ads

Referencer

Eksterne henvisninger

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads