注意:使用更新的代码进行了编辑,产生了命名空间的新问题。
使用 XSLT 3.0 和 Saxon HE,我正在复制一个 XML 文档,并且在复制它时,我需要增加@n
element中属性的值<div type="foo" n="0300">
。在这种情况下,我想增加@n
1。这是当前代码:
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//tei:div[@type='foo']">
<div type="foo">
<xsl:attribute name="n">
<xsl:value-of select="format-number(@n + 1,'0000')"/>
</xsl:attribute>
</div type>
</xsl:template>
它应该产生:
<div type="foo" n="0002"/>
而是产生以下内容:
<div xmlns="" xmlns:ntei="http://www.example.org/ns/nonTEI" type="foo" n="0301"/>
我正在使用 TEI 命名空间。如何防止添加这些属性:xmlns="" xmlns:ntei="http://www.example.org/ns/nonTEI"
?