Pewarta Proxy

📋 Server Request & Proxy Logs

Loading active proxy settings...
Developed by Khairul Adha (adhexa.id)
Mengambil log server...

⚙️ Pengaturan Proxy Target

Spring til indhold

XSLT

Fra Wikipedia, den frie encyklopædi

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.

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.

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.

  1. 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]