xslt - 用于选择不在给定 namespace 中的属性的 XSL/XPath 语法

标签 xslt xpath

鉴于我在 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/

相关文章:

xslt - 使用 XSLT 重复元素 x 次

xml - XSLT 从 XML 输出 html 标签

xpath - XSLT-2.0:输出到文件

xpath - 字符串作为xpath选择器

algorithm - "Swap italics algorithm"表示纯 XSLT,你知道吗?

javascript - 在浏览器上本地化日期?

xml - 用于标识后面没有内容的最后一个元素的表达式

xpath - HTML Agility Pack - 使用 XPath 获取单个节点 - 未将对象引用设置为对象的实例

xpath - xpath:在同一级别上组合多个过滤器

java - 如何使用 Selenium 和 Xpath 通过忽略大小写的文本查找元素