私はインターネット上で(そしてこのフォーラムでも)この問題の多くの解決策を見つけましたが、それでも問題を解決することができます。私はこのコードを持っています:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0"
exclude-result-prefixes="#default">
<xsl:output omit-xml-declaration="yes" standalone="no" method="xml" indent="no" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="tei:body">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
<back>
<div>
<xsl:for-each select="//tei:rs[@type='luogo']">
<p><xsl:value-of select="."/></p>
</xsl:for-each>
</div></back>
</xsl:template>
</xsl:stylesheet>
xmlns属性とxmlns:tei属性を繰り返すbackセクションを除いて、出力は正しいです。
<back xmlns="" xmlns:tei="http://www.tei-c.org/ns/1.0"><div>....</div></back>
それらはすでにここにあります(したがって、「戻る」ものは必要ありません):
<TEI xmlns="http://www.tei-c.org/ns/1.0">
私はこのようなコードを試しました:
<xsl:template match="@*|node()[not(self::*)]">
<xsl:copy/>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
またはこれ:
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|*"/>
</xsl:element>
</xsl:template>
<xsl:template match="tei:back">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
コードに合うように変更し、「tei:back」で一致またはselectの値を変更しても、機能しませんでした。tei名前空間をセクションにのみ表示させるにはどうすればよいですか?助けてくれてありがとう!
編集:答えてくれてありがとう。私のxmlコードは次のようなものです:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="file:/C:/Users/User/Desktop/prova2.xsl"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader><fileDesc>
<titleStmt>
<title>AA</title>
</titleStmt>
<publicationStmt><p><!-- supply publication information --></p></publicationStmt>
<sourceDesc>
<bibl>AA</bibl>
</sourceDesc>
</fileDesc><profileDesc>
<langUsage>
<language ident="ita">AA</language>
<language ident="lat">AA</language>
</langUsage>
</profileDesc></teiHeader>
<text>
<body>
<div type="book" n="3" xml:id="L3">
<head>AA
</head>
<div type="cap" n="1" xml:id="L3-01">
<head>AA</head>
<p>AA
<pb n="200"/>AA
</p>
</div>
</div>
</body>
</text>
</TEI>
完全な出力は次のようになります。
<?xml-stylesheet type="text/xsl" href="file:/C:/Users/User/Desktop/prova2.xsl"?><TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader><fileDesc>
<titleStmt>
<title>AA</title>
</titleStmt>
<publicationStmt><p><!-- supply publication information --></p></publicationStmt>
<sourceDesc>
<bibl>AA</bibl>
</sourceDesc>
</fileDesc><profileDesc>
<langUsage>
<language ident="ita">AA</language>
<language ident="lat">AA</language>
</langUsage>
</profileDesc></teiHeader>
<text>
<body>
<div type="book" n="3" xml:id="L3">
<head>AA
</head>
<div type="cap" n="1" xml:id="L3-01">
<head>AA</head>
<p>AA
<pb n="200"/>AA
</p>
</div>
</div>
</body><back xmlns="" xmlns:tei="http://www.tei-c.org/ns/1.0"><div/></back>
</text>
</TEI>