I recently had the pleasure of using XSLT after never having seen it before. I used it to transform a huge 130K line XML manifest with MAPI property metadata into C# source code. It was so simple, readable, and intuitive to use.
Xee: A Modern XPath and XSLT Engine in Rust
201–210 of 245 posts
Re: Xee: A Modern XPath and XSLT Engine in Rust
#202Fun fact: XSLT still enjoys broad support across all major browsers: https://caniuse.com/?search=xslt
I can’t say this with certainty, but I have some reason to suspect I might be partially to blame for this fun fact! A couple years ago, I stumbled on a discussion considering deprecation/removal of XSLT support in Chrome. At some point in the discussion, they mentioned observing a notable uptick in usage—enough of an uptick (from a baseline of approximately zero) that they backed out. The timing was closely correlate…
Re: Xee: A Modern XPath and XSLT Engine in Rust
#203Re: Xee: A Modern XPath and XSLT Engine in Rust
#204I yearn for the day when people will stop considering the main advertising bullet point feature that their software was written in Rust. Rust 1.0 was released a decade ago, plenty of time for its alleged technical advantages to become apparent. It's like a handbag whose main claim to being a premium product isn't workmanship or materials, but that it has Gucci on its side.
Knockoffs aside, the latter is intended to serve as a proxy for the former. I too will be happy when Rust is the boring everyday choice, but in 2025 we still see new buffer overflows every day. And if I'm picking a library, I still want to know if it's in the same language as the app it's going into.
Re: Xee: A Modern XPath and XSLT Engine in Rust
#205Earlier quoted context omitted.
JSON5 is a real sweet spot for me. Closing brackets, but I don't have to type every tag twice. Comments and trailing commas.
I find for deeply hierarchical data that XML is much easier to read.
what I really dread in XML though is that XML only has idref/id standardized, and no path references. so without tool support you can't navigate to a reference target.
which turns XML into the "binary" format for GUI tools.
Re: Xee: A Modern XPath and XSLT Engine in Rust
#206This, thirty years later, is the best pitch for XML I’ve read. Essentially, it’s a slow moving, standards-based approach to data interoperability. I hated it the minute I learned about it, because it missed something I knew I cared about, but didn’t have a word for in the 90s - developer ergonomics. XML sucks shit for someone who wants to think tersely and code by hand. Seriously, I hate it with a fiery passion. Happ…
You should try using a LISP like Racket for XML. Because XML can be expressed directly as S-expressions, XML and LISP go together like peanut butter and jelly. Hello world (greeting ((attr "val") (href "#")) "Hello " (thing "world"))
Re: Xee: A Modern XPath and XSLT Engine in Rust
#207Does XSLT still used in a new projects? I have impression, that it was not popular even when XML was. For example, apache HTTPD never has official module to serve XML via XSLT transformation. And XSL:FO looks even more obscure.
XSL:FO is dead for all practical purposes. XSLT was not popular for its original intended application - which is to say, serving XML data from web servers and translating it to HTML (or XSL:FO, or ...) on the client as needed. However, it was used plenty for XML processing outside of that particular niche. New projects these days rarely have to process complicated XML to begin with. But when you do, I'd say XSLT (or…
Re: Xee: A Modern XPath and XSLT Engine in Rust
#208Earlier quoted context omitted.
My favorite and only use of XSLT that still works pretty well is to allow people to browse my RSS feed as if it were a web page. https://joeldueck.com/feed.atom
That's an awesome idea! Very cool! I might just do that for my own RSS feed, and credit you for the great idea.
Re: Xee: A Modern XPath and XSLT Engine in Rust
#209Earlier quoted context omitted.
XSLT will perform the transformations that you instruct it to do. It does not wipe out whitespace just on its own. Do you mean that you'd like facilities to nicely reindent the output?
> It does not wipe out whitespace just on its own. Sounds nice but doesn't match my lived experience with both Chrome's built-in XSLT processor and `xsltproc`. (I was using XSLT 1.0, for legacy reasons, so maybe this is an XSLT 1.0 issue?) > Do you mean that you'd like facilities to nicely reindent the output? No, I do mean preserve whitespace (i.e., formatting), such as between elements and between attributes.
Re: Xee: A Modern XPath and XSLT Engine in Rust
#210Earlier quoted context omitted.
XML is honestly the greatest and I'm not sure why it didn't take off. People sometimes ask me, "what impacted the humanity the most - electricity? antibiotics? combustion engines?" -- no, no, and no, it was XML. Everything can be expressed in XML, and basically everything can read and write XML. It's like the whole world could read and write the same files. Imagine what if those files included programs, that's what X…
Maybe one reason is its verbosity for small everyday tasks, like config files or when representing arrays. If xml allowed empty tags there probably would be no need for json.