当前位置:  开发笔记 > Android > 正文

XPath - 按属性命名空间查找元素

如何解决《XPath-按属性命名空间查找元素》经验,为你挑选了1个好方法。

我正在尝试使用XPath来查找在给定命名空间中具有元素的所有元素.

例如,在下面的文档中,我想找到foo:bar和doodah元素



  Content
  Content
  Content

我知道我可以使用以下XPath表达式来加载给定命名空间中的所有属性

"//@*[namespace-uri()='http://foo.example.com']"

然而:

这不会给我元素,只有属性和

其中elements包含来自该命名空间的多个属性,此XPath将返回每个属性而不是每个元素的结果

是否有可能获得我想要的东西,或者我只需要收集属性并计算它们对应的唯一元素集?

编辑:Dimitre Novatchev给了我以下答案.我没有意识到你可以在这样的谓词中嵌套谓词:

"//*[@*[namespace-uri()='http://foo.example.com']]"

具体来说,这表示"任何具有任何属性的元素都具有namespace-uri ='...'"



1> Dimitre Nova..:

使用:

  //*[namespace-uri()='yourNamespaceURI-here'
     or
      @*[namespace-uri()='yourNamespaceURI-here']
     ]

谓词两个条件是使用XPath or运算符进行的.

因此,XPath表达式选择以下任何元素:

属于指定的命名空间

要么

具有属于指定命名空间的属性

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有