在 XSLT 中,以下 XPath 检索 的所有 namespace 的 namespace 节点。范围内 .这些包括为当前节点定义的命名空间,以及在当前节点的祖先中定义的命名空间。
<xsl:for-each select="namespace::*">
...
</xsl:for-each>
我只想检索为当前节点明确定义的命名空间节点,即不是从祖先作用域继承的那些节点。
如何?
最佳答案
一般来说,这是不可能的。您只能列出与任何父级命名空间节点都不匹配的命名空间节点:
<xsl:for-each select="namespace::*">
<xsl:if test="not(../../namespace::*[name() = name(current())] = .)">
<!-- different -->
</xsl:if>
</xsl:for-each>
但这不会列出使用与父级相同的前缀和 URI 重新定义的命名空间节点。
关于xml - XPath - 仅获取此节点的命名空间节点(即不是祖先节点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39452537/