From 47b88f19b2d16ffe10f4f8548a12502aaaca5556 Mon Sep 17 00:00:00 2001 From: Mihaela Mihaljevic Date: Tue, 9 Jun 2026 02:50:24 +0200 Subject: [PATCH] feat(xslt): key() over a node-set second argument key(name, node-set), including key('k', .), now unions the indexed nodes for every value node's string value and de-duplicates, instead of using only the first node's string value. A string value still works directly. Part of #82. --- CHANGELOG.md | 1 + Sources/XSLT/XSLTFunctions.swift | 17 ++++++++-- Tests/XSLTKeyNodeSetTests.swift | 56 ++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 Tests/XSLTKeyNodeSetTests.swift diff --git a/CHANGELOG.md b/CHANGELOG.md index 49043c8..9f3e225 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- XSLT `key()` over a node-set second argument (#82). `key(name, node-set)` (including `key('k', .)`) now unions the matches for every node's string value and de-duplicates, rather than using only the first node's string value. - XSLT `method="html"` output (#82). An `xsl:output method="html"` result is now serialized by the HTML rules (void elements like `
` emitted without a self-closing slash, raw-text elements like `