是否可以复制仅使用 xslt 使用的标签的命名空间?
例如,我目前正在使用:
<xsl:copy-of select="//namespace::*" />
这是盲目复制所有命名空间,但我只想复制给定标签中使用的命名空间,可以吗?
如果使用 xsl:copy-of 复制元素,则元素名称或其属性之一上实际使用的所有命名空间也将自动复制(并且不会复制其他命名空间)。
同样,xsl:copy会自动"做正确的事"。
如果出于某种原因,您希望复制元素$E范围内的所有命名空间,而不复制元素本身,则可以使用
<xsl:copy-of select="$E/namespace::*"/>
因为您使用"标签"而不是"元素"一词,所以我怀疑您对XDM数据模型没有深刻的理解。在操作命名空间时,这种理解至关重要,因为它根本不直观,并且可能是数据模型与"表面语法"差异最大的领域。特别是,您需要注意,元素具有在元素本身及其任何祖先上声明的所有命名空间的命名空间节点。