鉴于我在 xml 元素的上下文中:
<xsl:copy-of select="@*"/>
会给我一个所有属性的副本。我正在寻找一个 xpath 表达式,它将给我所有属性 except 那些在给定 namespace 中的属性,比如'x' 我当前的代码:
<xsl:copy-of select="@*[not(starts-with(name(),'x:'))]"/>
有效但不是最佳答案。
注意很高兴了解 XSLT2.0 但正在寻找 1.0 答案
最佳答案
在 XSLT 2.0 中,您可以编写 <xsl:copy-of select="@* except @x:*"/>
.使用 XSLT 1.0,您所能做的就是使用 <xsl:copy-of select="@*[not(namespace-uri() = 'http://example.com/')]"/>
(当然用输入属性的命名空间替换 http://example.com/
)。
关于xslt - 用于选择不在给定 namespace 中的属性的 XSL/XPath 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22862029/