我想选择文档中具有给定命名空间(前缀)的最顶层元素。
更具体地说:我有以 /html/body (在 XHTML 命名空间中)或以特定命名空间中的几个元素之一开头的 XML 文档。我实际上想删除 /html/body 并返回正文内容或整个根命名空间元素。
我想选择文档中具有给定命名空间(前缀)的最顶层元素。
更具体地说:我有以 /html/body (在 XHTML 命名空间中)或以特定命名空间中的几个元素之一开头的 XML 文档。我实际上想删除 /html/body 并返回正文内容或整个根命名空间元素。
在 XPath 2.0 和 XQuery 1.0 中,您可以使用谓词中的in-scope-prefixes()函数针对名称空间前缀进行测试。例如
//*[in-scope-prefixes(.)='html']
如果您不能使用 v2,在 XPath 1.0 中,您可以使用namespace-uri()函数来测试命名空间本身。例如
//*[namespace-uri()='http://www.w3c.org/1999/xhtml']
我想要的 XPath 表达式是:
/html:html/html:body/node()|/foo:*
其中“html”前缀映射到 XHTML 命名空间,而“foo”前缀映射到我的目标命名空间。