0
这里默认的命名空间是我的XML的根(还有更多,但这里是基础):如何添加与XSLT命名空间的属性时,有对XML
<?xml version="1.0" encoding="UTF-8"?><section xmlns="http://quark.com/smartcontent/2.0" id="_63f6a0c9-bac8-4a15-854c-03d80bd46b64" type="clientFactsheet">
这里是我的XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:deltaxml="http://www.deltaxml.com/ns/well-formed-delta-v1" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="section[@id]">
<xsl:copy>
<xsl:attribute name="deltaxml:key" select="@id"/>
<xsl:apply-templates select="@*, node()"/>
</xsl:copy>
</xsl:template>
这里是输出XML根:
<?xml version="1.0" encoding="UTF-8"?><section xmlns="http://quark.com/smartcontent/2.0" id="_63f6a0c9-bac8-4a15-854c-03d80bd46b64" type="clientFactsheet">
这里是我所得到的,如果我脱下输入XML的默认命名空间(这是理想的结果,但我需要保持默认的命名空间):
<?xml version="1.0" encoding="UTF-8"?><section xmlns:deltaxml="http://www.deltaxml.com/ns/well-formed-delta-v1" deltaxml:key="_63f6a0c9-bac8-4a15-854c-03d80bd46b64" id="_63f6a0c9-bac8-4a15-854c-03d80bd46b64" type="clientFactsheet">
基本上,我需要能够要添加“deltaxml:键”属性与该部分的“id”值,所以为此我需要添加名称空间“deltaxml”,但我还需要保留默认名称空间(可以从文档更改为我赢得的文档没有控制权......所以我不能把它复制过来)。我怎样才能做到这一点?