<?xml version="1.0"?>
<!--
-SPDX-FileCopyrightText: 2024 Lady <https://www.ladys.computer/about/#lady>
+SPDX-FileCopyrightText: 2024, 2025 Lady <https://www.ladys.computer/about/#lady>
SPDX-License-Identifier: MPL-2.0
-->
<!--
-⁌ ⛩️📰 书社 ∷ lib/archive2extractor.xslt
+⁌ ⛩📰 书社 ∷ lib/archive2extractor.xslt
-© 2024 Lady [@ Lady’s Computer].
+© 2024–2025 Lady [@ Ladys Computer].
This Source Code Form is subject to the terms of the Mozilla Public License, v 2.0.
If a copy of the M·P·L was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0/>.
-->
<transform
xmlns="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exsl="http://exslt.org/common"
xmlns:xslt="http://www.w3.org/1999/XSL/TransformAlias"
xmlns:书社="urn:fdc:ladys.computer:20231231:Shu1She4"
version="1.0"
>
<namespace-alias stylesheet-prefix="xslt" result-prefix="#default"/>
<template match="/">
- <xslt:transform
- xmlns:exsl="http://exslt.org/common"
- extension-element-prefixes="exsl"
- version="1.0"
- >
+ <xslt:transform extension-element-prefixes="exsl" version="1.0">
<xslt:template match="/">
- <for-each select="书社:archive/*[@书社:archived-as and not(starts-with(@书社:archived-as, '../') or contains(@书社:archived-as, '/../'))]">
+ <for-each select="书社:archive/*[@书社:archived-as and not(starts-with(@书社:archived-as, '../') or starts-with(@书社:archived-as, '/') or contains(@书社:archived-as, '/../'))]">
<variable name="href">
<text>./extracted/</text>
<choose>
<xslt:variable name="href">
<value-of select="@书社:archived-as"/>
</xslt:variable>
- <xslt:copy-of select="书社:archive/*[@书社:archived-as=$href][1]"/>
+ <xslt:for-each select="书社:archive/*[@书社:archived-as=$href][1]">
+ <xslt:copy>
+ <xslt:copy-of select="@*[not(namespace-uri()='urn:fdc:ladys.computer:20231231:Shu1She4' and local-name()='archived-as')]|node()"/>
+ </xslt:copy>
+ </xslt:for-each>
</exsl:document>
<xslt:text>
<value-of select="$href"/>