使用xslt仅复制使用的命名空间

时间:2016-04-21 09:24:06

标签: xml xslt xslt-1.0

是否可以复制仅使用xslt?

使用的标记名称空间

例如我目前正在使用:

<xsl:copy-of select="//namespace::*" />

盲目地复制所有名称空间,但我想只复制给定标记中使用的名称空间,是否可能?

1 个答案:

答案 0 :(得分:0)

如果使用xsl:copy-of复制元素,则实际上在元素名称或其某个属性上使用的所有名称空间也将自动复制(并且其他名称空间不会被复制)。

同样,xsl:copy&#34;做正确的事情&#34;自动。

如果出于某种原因,您希望复制元素$ E中的所有命名空间而不复制元素本身,则可以使用

<xsl:copy-of select="$E/namespace::*"/>

因为您使用了&#34;标记&#34;而不是&#34;元素&#34;,我怀疑你对XDM数据模型没有深刻的理解。在操作名称空间时,这种理解是至关重要的,因为它根本不是直观的,并且可能是数据模型与表面语法&#34;最大差异的区域。特别需要注意的是,元素具有命名空间节点,用于在元素本身及其任何祖先上声明的所有命名空间。