<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>@tradik/xslt-processor blog</title>
  <link href="https://xslt-processor.tradik.com/blog/" rel="alternate"/>
  <link href="https://xslt-processor.tradik.com/blog/feed.xml" rel="self"/>
  <id>https://xslt-processor.tradik.com/blog/</id>
  <updated>2026-10-02T08:17:07Z</updated>
  <entry>
    <title>1.3.0: XSLT 3.0 in JavaScript, one option away</title>
    <link href="https://xslt-processor.tradik.com/blog/release-1-3/"/>
    <id>https://xslt-processor.tradik.com/blog/release-1-3/</id>
    <published>2026-10-02T12:00:00Z</published>
    <updated>2026-10-02T08:17:07Z</updated>
    <summary>Two releases today. @tradik/xslt3 1.0.0 is a new package: XSLT 3.0 and
XPath 3.1 in JavaScript, which also runs XSLT 2.0 stylesheets. And
@tradik/xslt-processor 1.3.0, the browser XSLTProcessor replacement, can
now hand a 2.0 or 3.0 stylesheet to it when you ask. Nothing changes for
anyone who doesn</summary>
  </entry>
  <entry>
    <title>XSLT 2.0 and 3.0 in JavaScript: why @tradik/xslt3 is a separate package</title>
    <link href="https://xslt-processor.tradik.com/blog/xslt3-in-javascript/"/>
    <id>https://xslt-processor.tradik.com/blog/xslt3-in-javascript/</id>
    <published>2026-10-01T11:00:00Z</published>
    <updated>2026-10-02T08:17:07Z</updated>
    <summary>Every browser that ever ran XSLT ran version 1.0, the 1999 recommendation.
Chrome and Safari used libxslt, Firefox its own TransforMiiX. XSLT 2.0
arrived in 2007 and 3.0 in 2017, with grouping, regular expressions, real
functions, maps, JSON and a much stronger XPath, and the browsers never
followed</summary>
  </entry>
  <entry>
    <title>What the end of browser XSLT breaks, and what to do about it</title>
    <link href="https://xslt-processor.tradik.com/blog/xslt-removal-impact/"/>
    <id>https://xslt-processor.tradik.com/blog/xslt-removal-impact/</id>
    <published>2026-10-01T10:00:00Z</published>
    <updated>2026-10-02T08:17:07Z</updated>
    <summary>Chrome&#39;s case for removing XSLT rests on two numbers: about 0.02% of page
loads use XSLT, and less than 0.001% use the xml-stylesheet
processing instruction (the background is here).
Put that way it sounds like nothing. It is worth looking at what sits behind
it before deciding that it doesn&#39;t conce</summary>
  </entry>
  <entry>
    <title>Chrome turns off XSLT on 17 November 2026. How we got here</title>
    <link href="https://xslt-processor.tradik.com/blog/chrome-is-turning-off-xslt/"/>
    <id>https://xslt-processor.tradik.com/blog/chrome-is-turning-off-xslt/</id>
    <published>2026-10-01T09:00:00Z</published>
    <updated>2026-10-02T08:17:07Z</updated>
    <summary>On 17 November 2026, Chrome 158 reaches the stable channel, and XSLT stops
working in it. A page that calls new XSLTProcessor() gets a ReferenceError.
An XML file that starts with &amp;lt;?xml-stylesheet type=&amp;quot;text/xsl&amp;quot; href=&amp;quot;…&amp;quot;?&amp;gt;
shows up as raw XML instead of the HTML its author</summary>
  </entry>
  <entry>
    <title>Looking back at 1.2.0 and 1.2.1: Chrome&#39;s behaviour, 3,000-level recursion, and a release that broke on macOS</title>
    <link href="https://xslt-processor.tradik.com/blog/release-1-2/"/>
    <id>https://xslt-processor.tradik.com/blog/release-1-2/</id>
    <published>2026-09-30T18:00:00Z</published>
    <updated>2026-10-02T08:17:07Z</updated>
    <summary>Version 1.2.0 went out on 30 September 2026, and 1.2.1 followed a few hours
later. The second one exists because of a bug in our own tests, and we will
get to that. First, what 1.2 is about: making the JavaScript XSLTProcessor
behave like the one Chrome is about to switch off, on the inputs real
sty</summary>
  </entry>
  <entry>
    <title>Ten XSLT 1.0 rules that surprise experienced developers</title>
    <link href="https://xslt-processor.tradik.com/blog/xslt-1-0-surprising-rules/"/>
    <id>https://xslt-processor.tradik.com/blog/xslt-1-0-surprising-rules/</id>
    <published>2026-09-29T12:00:00Z</published>
    <updated>2026-10-02T08:17:07Z</updated>
    <summary>XSLT 1.0 is a short specification, and people who have written stylesheets for
years still get caught by parts of it. We know, because writing a processor
that matches Chrome meant finding every one of these the hard way: the 1.1
releases of @tradik/xslt-processor fixed dozens of them. Here are the </summary>
  </entry>
</feed>
