XSLT.js

Vor ein paar Tagen habe ich mich noch darüber aufgeregt, dass Browser künftig wohl kein XSLT mehr unterstützen werden. Es mag sein, dass ich da vielleicht etwas zu hysterisch voreilig war.

@krinkle hat mich in den Kommentaren auf einen Blogpost und einen Pull Request hingewiesen, die zeigen wie man mit JavaScript zu einem ähnlichen Resultat kommt. (Danke nochmal dafür!)

If you just want to make some existing XSLT work in browsers that don’t support it, check out Mason’s XSLT polyfill. But if you don’t need to use XSLT, JavaScript is, in my opinion, a better option.

Making XML human-readable without XSLT

Statt JavaScript zu verwenden, um XSLT über WebAssembly clientseitig auszuführen, könnte man JavaScript auch direkt nutzen, um das XML zu transformieren.

Hätte man auch gleich drauf kommen können!

Ich hab mir also mal einen Abend Zeit genommen und das OPML für das SocialSpec Plugin (mehr dazu bald) von XSLT auf JavaScript umgezogen.

Screenshot einer gestalteten OPML-Liste „notizBlog Follows“ auf notiz.blog: Ein Hinweiskasten erklärt OPML, darunter stehen abonnierte Blogs mit Beschreibung, Feed-URL und je einem „Subscribe“-Button.

Man bindet „einfach“ ein script-Element mit dem XHTML-Namespace in die XML-Datei ein. Das führt der Browser dann aus.

<opml version="2.0">
  <script xmlns="http://www.w3.org/1999/xhtml" src="opml.js" defer=""/>
  <head>…</head>
  <body>…</body>
</opml>Code-Sprache: HTML, XML (xml)

Das Script liest die Daten aus dem OPML, baut daraus eine HTML-Seite und ersetzt damit das XML (document.documentElement.replaceWith( html )). Feed-Reader ignorieren das Script und bekommen weiter das normale OPML.

Ich arbeite jetzt seit fast zwei Jahrzehnten mit offenen Formaten und Web Standards und bin bei der Technik inzwischen ziemlich leidenschaftslos. Ich finde XSLT zwar immer noch charmanter, aber das hilft ja nicht, wenn kein Browser es unterstützt.

So lange das Ergebnis das gleiche ist, ist mehr der Weg dahin mittlerweile fast egal.

XSLT ist tot, lang lebe JavaScript!

Matthias Pfefferle
Matthias Pfefferle
@pfefferle@notiz.blog

Ich bin Webworker und arbeite als „Open Web Lead“ @ Automattic. Ich blogge, podcaste und schreibe eine Kolumne über das open, independent und federated social Web. Mehr über mich.

773 Beiträge
856 Folgende
Fediverse Reactions

2 Kommentare

  1. Good to know dass es da einen guten Workaround gibt, danke fürs Teilen!

    1. Er funktioniert… ob er gut ist, darüber lässt sich streiten 😉

Schreibe einen Kommentar

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

Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.