X-Git-Url: https://git.ladys.computer/Shushe/blobdiff_plain/90810b4c234960e725e770f331b13c4687f407c8..c1a08dff0fcba3fc28ec3061a359d71efeb438be:/lib/catalog2parser.xslt diff --git a/lib/catalog2parser.xslt b/lib/catalog2parser.xslt index d1d2bab..a2eab12 100644 --- a/lib/catalog2parser.xslt +++ b/lib/catalog2parser.xslt @@ -1,8 +1,12 @@ <?xml version="1.0"?> <!-- -⁌ ⛩️📰 书社 ∷ lib/catalog2parser.xslt +SPDX-FileCopyrightText: 2023, 2024 Lady <https://www.ladys.computer/about/#lady> +SPDX-License-Identifier: MPL-2.0 +--> +<!-- +⁌ ⛩📰 书社 ∷ lib/catalog2parser.xslt -© 2023–2024 Lady [@ Lady’s Computer] +© 2023–2024 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/>. @@ -13,15 +17,22 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one xmlns:exsl="http://exslt.org/common" xmlns:exslstr="http://exslt.org/strings" xmlns:html="http://www.w3.org/1999/xhtml" + xmlns:nfo="http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslt="http://www.w3.org/1999/XSL/TransformAlias" xmlns:书社="urn:fdc:ladys.computer:20231231:Shu1She4" - exclude-result-prefixes="catalog exslstr" + exclude-result-prefixes="catalog" + extension-element-prefixes="exslstr" version="1.0" > <namespace-alias stylesheet-prefix="xslt" result-prefix="#default"/> <template match="/"> - <xslt:transform version="1.0"> + <xslt:transform extension-element-prefixes="exsl" version="1.0"> + <xslt:param name="BUILDTIME" select="'1972-12-31T00:00:00Z'"/> + <xslt:param name="IDENTIFIER" select="false()"/> + <xslt:param name="SRCREV" select="false()"/> + <xslt:param name="THISREV" select="false()"/> <xslt:variable name="书社:parsers"> <html:dl> <for-each select="//catalog:uri"> @@ -79,18 +90,35 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one </for-each> <xslt:template name="书社:apply-parsed-by"> <xslt:param name="id"/> + <xslt:param name="media-type"/> <xslt:param name="result" select="/.."/> <xslt:for-each select="$result/node()"> - <xslt:copy> - <xslt:attribute name="书社:parsed-by"> - <xslt:value-of select="$id"/> - <xslt:if test="@书社:parsed-by"> - <xslt:text> </xslt:text> - <xslt:value-of select="@书社:parsed-by"/> - </xslt:if> - </xslt:attribute> - <xslt:copy-of select="@*[not(namespace-uri()='urn:fdc:ladys.computer:20231231:Shu1She4' and local-name()='parsed-by')]|node()"/> - </xslt:copy> + <xslt:choose> + <xslt:when test="self::*"> + <xslt:copy> + <xslt:if test="string($id)!=''"> + <xslt:attribute name="书社:parsed-by"> + <xslt:value-of select="$id"/> + <xslt:if test="@书社:parsed-by"> + <xslt:text> + <text> </text> + </xslt:text> + <xslt:value-of select="@书社:parsed-by"/> + </xslt:if> + </xslt:attribute> + </xslt:if> + <xslt:if test="string($media-type)!=''"> + <xslt:attribute name="书社:media-type"> + <xslt:value-of select="$media-type"/> + </xslt:attribute> + </xslt:if> + <xslt:copy-of select="@*[namespace-uri()!='urn:fdc:ladys.computer:20231231:Shu1She4' or local-name()!='parsed-by' and local-name()!='media-type']|node()"/> + </xslt:copy> + </xslt:when> + <xslt:otherwise> + <xslt:copy-of select="."/> + </xslt:otherwise> + </xslt:choose> </xslt:for-each> </xslt:template> <xslt:template match="/"> @@ -112,7 +140,8 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one <xslt:apply-templates select="exsl:node-set($result)/node()" mode="书社:parse"/> </xslt:variable> <xslt:call-template name="书社:apply-parsed-by"> - <xslt:with-param name="id" select="$parserdiv/html:dt"/> + <xslt:with-param name="id" select="string($parserdiv/html:dt)"/> + <xslt:with-param name="media-type" select="string(@type)"/> <xslt:with-param name="result" select="exsl:node-set($reparsed-result)"/> </xslt:call-template> </xslt:when>