<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ayoub Kharbouch</title>
    <description>The latest articles on DEV Community by Ayoub Kharbouch (@ayoub_kharbouch_6d1ecff6c).</description>
    <link>https://dev.to/ayoub_kharbouch_6d1ecff6c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4202803%2F25faf95d-01bb-4cac-bfba-d2d515b2aadb.jpeg</url>
      <title>DEV Community: Ayoub Kharbouch</title>
      <link>https://dev.to/ayoub_kharbouch_6d1ecff6c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ayoub_kharbouch_6d1ecff6c"/>
    <language>en</language>
    <item>
      <title>Why I built XMLNest: keeping XML pages readable after Chrome drops XSLT</title>
      <dc:creator>Ayoub Kharbouch</dc:creator>
      <pubDate>Fri, 23 Oct 2026 14:15:54 +0000</pubDate>
      <link>https://dev.to/ayoub_kharbouch_6d1ecff6c/why-i-built-xmlnest-keeping-xml-pages-readable-after-chrome-drops-xslt-g38</link>
      <guid>https://dev.to/ayoub_kharbouch_6d1ecff6c/why-i-built-xmlnest-keeping-xml-pages-readable-after-chrome-drops-xslt-g38</guid>
      <description>&lt;p&gt;From 17 November 2026, open /wp-sitemap.xml in Chrome and the table of links is gone: a warning banner on top, raw XML tags underneath. The site did not change. Chrome stopped applying XSL stylesheets, and I built XMLNest so that people who are not developers can still read these pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Chrome decision led to XMLNest?
&lt;/h2&gt;

&lt;p&gt;Chrome is removing XSLT, the language that turns an XML file into a readable page through an XSL stylesheet the file points to. From Chrome 158, on 17 November 2026, Stable releases stop applying those stylesheets. Two exceptions last until Chrome 176, on 17 August 2027: sites enrolled in Chrome's origin trial, and browsers managed with the XSLTEnabled enterprise policy.&lt;/p&gt;

&lt;p&gt;Chrome's reason is security. The libraries behind these transformations, libxslt among them, are complex C and C++ code, and that kind of code is prone to memory safety bugs such as buffer overflows. I find the decision defensible. It still lands on real pages, and on the people who open them.&lt;/p&gt;

&lt;p&gt;Those people lose the table, the headings and the clickable links. A banner at the top points to a Chrome Web Store search for "xslt polyfill". When we tested in Chromium 156 with XSLT turned off, the page then said "This document cannot be formatted as intended" and showed the tags and text of the file, with no layout at all. Our guide explains &lt;a href="https://xmlnest.com/guides/xslt-removed-from-chrome/" rel="noopener noreferrer"&gt;why XSLT is not working in Chrome&lt;/a&gt;, with the full timeline and the fixes for site owners.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which pages will look broken after 17 November?
&lt;/h2&gt;

&lt;p&gt;Chrome calls XSLT rare on the web. The pages that use it are ones people open without ever thinking about the format behind them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WordPress sitemaps.&lt;/strong&gt; Since WordPress 5.5, a WordPress site publishes a sitemap index at &lt;code&gt;/wp-sitemap.xml&lt;/code&gt;, styled by XSL stylesheets that ship with WordPress itself. To read one before and after the change, see &lt;a href="https://xmlnest.com/guides/view-wordpress-sitemap/" rel="noopener noreferrer"&gt;viewing a WordPress sitemap in Chrome&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Yoast SEO sitemaps.&lt;/strong&gt; The index at &lt;code&gt;/sitemap_index.xml&lt;/code&gt; and the sitemaps it lists reference an XSL file for their layout.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RSS and Atom feeds.&lt;/strong&gt; Chrome notes that many feeds use XSLT so that a person who opens the feed in the browser gets something readable. If a feed already shows as code for you, the cause may be elsewhere: here is &lt;a href="https://xmlnest.com/guides/rss-feed-plain-text/" rel="noopener noreferrer"&gt;why an RSS feed shows as plain text&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Devices on a local network.&lt;/strong&gt; Chrome mentions commercial devices that generate XML for their users, and adds that many of them are difficult or impossible to update.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plain XML files with no stylesheet are not affected. Chrome removes XSLT, not XML, so it keeps showing them the way it always has: the line "This XML file does not appear to have any style information associated with it. The document tree is shown below." above an indented tree of elements. That line is not an error. Our guide on &lt;a href="https://xmlnest.com/guides/open-xml-file-in-chrome/" rel="noopener noreferrer"&gt;opening an XML file in Chrome&lt;/a&gt; explains what it means, and what to do when you get plain text instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does a UX designer care about raw XML?
&lt;/h2&gt;

&lt;p&gt;I have designed web products for 12 years. Most of that work comes down to one job: making information readable for people who are not developers.&lt;/p&gt;

&lt;p&gt;Raw XML fails that test. It is written for programs. A site owner checking that new pages made it into the sitemap wants a list of addresses and dates, not a wall of &lt;code&gt;&amp;lt;loc&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;lastmod&amp;gt;&lt;/code&gt; tags. Someone who clicks a podcast feed wants the episodes and a play button.&lt;/p&gt;

&lt;p&gt;Developers will cope with the change. They can read the tags, or transform the file on the server. The people I had in mind cannot, and they are the ones who open these pages in a browser rather than in a code editor.&lt;/p&gt;

&lt;p&gt;So I did not want to build a developer tool. I wanted an extension you install once and forget, until the day a sitemap or a feed looks wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does XMLNest show instead?
&lt;/h2&gt;

&lt;p&gt;XMLNest is a free XML viewer for Chrome. In practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pages that use an XSL stylesheet (XSLT 1.0) display the way Chrome used to display them. The stylesheet runs in an isolated sandbox.&lt;/li&gt;
&lt;li&gt;Any XML document opens as a tree you can fold and search, or as formatted source.&lt;/li&gt;
&lt;li&gt;RSS and Atom feeds open in a reader view, with a built-in podcast player.&lt;/li&gt;
&lt;li&gt;XML sitemaps become a table you can filter, sort and export to CSV or JSON.&lt;/li&gt;
&lt;li&gt;XML files from your computer open too, once you allow local files.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It has a light and a dark theme.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvu7hpk5lclnj7vwv4fuj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvu7hpk5lclnj7vwv4fuj.jpg" alt="A podcast RSS feed in Chrome with XMLNest: the styled page with its episodes and Listen buttons is back, with the Reader, Tree and Source buttons at the bottom" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1o9w6l8nw72kob29p7ll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1o9w6l8nw72kob29p7ll.png" alt="A WordPress sitemap index shown as a table with its own stylesheet, in Chrome with XMLNest" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It collects no data, shows no ads and asks for no account. Nothing you open is sent anywhere, and its few settings stay in your browser. It installs with no access to any site. You grant access everywhere in one click, or site by site when you need it. Scripts inside a transformed page stay off unless you allow them for that site.&lt;/p&gt;

&lt;p&gt;Those two choices come from my day job. An extension that asks to read every site at install is asking for trust before it has earned any. So XMLNest asks at the moment the access makes sense to you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why build XMLNest when an official extension exists?
&lt;/h2&gt;

&lt;p&gt;Chrome's announcement links to one extension, the official XSLT Polyfill, and people found it. According to Chrome Web Store data for &lt;a href="https://chromewebstore.google.com/detail/xslt-polyfill/hlahhpnhgficldhfioiafojgdhcppklm" rel="noopener noreferrer"&gt;its listing&lt;/a&gt;, it went from about 6,000 to about 70,000 users between 28 September and 4 October 2026.&lt;/p&gt;

&lt;p&gt;Both extensions run the same open-source engine, xslt-polyfill. They differ in three ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The official extension also brings back XSLTProcessor, the JavaScript interface that ordinary HTML pages use to run XSLT themselves. Since version 1.3, XMLNest does too, but only on the sites where you turn it on from its toolbar button, and the files a stylesheet imports must come from the page's own site.&lt;/li&gt;
&lt;li&gt;XMLNest adds the reader, tree and source views, and asks for no site access at install.&lt;/li&gt;
&lt;li&gt;XMLNest does not apply XSL stylesheets to files on your computer. Chrome never did either: in our test, a local XML file linked to a local stylesheet gave an empty page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href="https://xmlnest.com/extension/" rel="noopener noreferrer"&gt;XMLNest extension page&lt;/a&gt; covers how it works and each permission it asks for.&lt;/p&gt;

&lt;h2&gt;
  
  
  When can you install XMLNest?
&lt;/h2&gt;

&lt;p&gt;XMLNest is available on the Chrome Web Store now, before Chrome stops applying XSL stylesheets on 17 November 2026.&lt;/p&gt;

&lt;p&gt;You do not have to wait for that date to see what your own pages will look like. Chrome Beta, Dev and Canary have been disabling XSLT by default since Chrome 145, so opening your sitemap or your feed in one of them shows the result today.&lt;/p&gt;

&lt;p&gt;If a page does not display the way you expect, in Chrome or later in XMLNest, write to me at &lt;a href="mailto:contact@xmlnest.com"&gt;contact@xmlnest.com&lt;/a&gt; with its address.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This post was first published on &lt;a href="https://xmlnest.com/blog/why-i-built-xmlnest/" rel="noopener noreferrer"&gt;xmlnest.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>xml</category>
      <category>chrome</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
