XPath常用定位节点元素语句总结

原创 2007年10月05日 14:48:00
XPath常用定位节点元素语句总结

作者:deepblue     日期:2007-08-13

简单介绍了xpath,总结了在使用xpath过程中用到的一些实例,收集了一些较好的学习xpath的资料。

将一个XML或HTML文档转换成了DOM树结构后,如何才能定位到特定的节点?XPath实现了这样的功能,它通过DOM树中节点的路径和属性来导航,通过XPath路径表达式可以
选择DOM树中的nodes(节点)或是node-set(节点集)。
XPath包含了数量超过100的内置函数。这些函数针对字符串值,数字值,日期和时间比较,节操作,顺序操作,布尔值,等

解析用的java包

Java 5 推出了 javax.xml.xpath 包,这是一个用于 XPath 文档查询的独立于 XML 对象模型的库。
Xalan-Java http://xml.apache.org/xalan-j/

常用函数

xpath的常用函数主要包含节点集函数,字符串函数,布尔函数,数字函数,网上的资料较多,在此就不再累述,可参考以下资料:

[a] XPath, XQuery, and XSLT Functions  http://www.w3schools.com/xpath/xpath_functions.asp

[b] XPath Functions  http://www.caucho.com/resin-3.0/xml/xpath-fun.xtp

[c] XPath Functions(MSDN)  http://msdn2.microsoft.com/en-us/library/ms256138.aspx




常用定位语句实例

1.  //NODE[not(@class)]   
所有节点名为node,且不包含class属性的节点

2.  //NODE[@class and @id]    所有节点名为node,且同时包含class属性和id属性的节点

3.  //NODE[contains(text(),substring]   所有节点名为node,且其文本中包含substring的节点

    //A[contains(text(),/"下一页/")]   所有包含“下一页”字符串的超链接节点
   
    //A[contains(@title,"文章标题")]    所有其title属性中包含“文章标题”字符串的超链接节点

4.  //NODE[@id="myid"]/text()   节点名为node,且属性id为myid的节点的所有直接text子节点

5.  BOOK
[author/degree]   所有包含author节点同时该author节点至少含有一个的degree孩子节点的book节点

6.  AUTHOR[.="Matthew Bob"]   所有值为“Matthew Bob”的author节点

7.  //*[count(BBB)=2]   所有包含两个BBB孩子节点的节点

8.  //*[count(*)=2]   所有包含两个孩子节点的节点

9.  //*[name()='BBB']   所有名字为BBB的节点,等同于//BBB

10.  //*[starts-with(name(),'B')]   所有名字开头为字母B的节点

11.  //*[contains(name(),'C')]   所有名字中包含字母C的节点

12.  //*[string-length(name()) = 3]   名字长度为3个字母的节点

13.  //CCC | //BBB   所有CCC节点或BBB节点

14.  /child::AAA   等价于/AAA

15.  //CCC/descendant::*   所有以CCC为其祖先的节点

16.  //DDD/parent::*   DDD节点的所有父节点

17.  //BBB[position() mod 2 = 0]   偶数位置的BBB节点

18.  AUTHOR[not(last-name = "Bob")]   All <author> elements that do no contain <last-name> child elements with the value Bob.

19.  P/text()[2]   当前上下文节点中的P节点的第二个文本节点

20.  ancestor::BOOK[1]   离当前上下文节点最近的book祖先节点


最后推荐一款在Firefox中用的XPath插件:

XPath Checker
https://addons.mozilla.org/en-US/firefox/addon/1095

这个插件可以方便查看网页中任意元素的XPath路径,但其自动生成的XPath路径通常不是最简路径。


参考资料
[1]
XPath Examples.    http://msdn2.microsoft.com/en-us/library/ms256086.aspx
[2]
XPath Tutorial    http://www.zvon.org/xxl/XPathTutorial/Output/example1.html
[3]XPath介绍    http://www.xml.org.cn/dispbbs.asp?boardID=14&ID=35493
[4]XPath reference
   http://msdn2.microsoft.com/en-us/library/ms256115.aspx
[5]XML Path Language (XPath)Version 1.0  http://www.w3.org/TR/xpath
[6]
XPath Tutorial http://www.w3schools.com/xpath/default.asp
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

XPath常用定位节点元素语句总结

转自 http://www.cnblogs.com/huqingyu/archive/2010/02/21/1670073.html 将一个XML或HTML文档转换成了DOM树结构后,如何才能定...

xPath技术快速定位节点

xPath技术快速定位节点xPath技术快速定位节点 xPath技术概览 为何使用xPath技术 xPath技术解决的问题 xPath本质 在dom4j中使用xPath技术 xPath语法 xPath...

在Dom4j中使用Xpath搜索xml的元素节点

有关XPath的知识,大家可以参考我的xml小结里面的《通过Xpath查找指定节点》一文,在本文中我们继续使用test,xml来作为解析的范例!为了方便起见,我就直接把源码附在下面了! ...

selenium webdriver xpath 定位页面元素

selenium webdriver定位页面元素 selenium-webdriver提供了强大的元素定位方法,支持以下三种方法。 单个对象的定位方法多个对象的定位方法层级定位...

在Selenium WebDriver中使用By.Xpath快速定位页面元素

转载: http://www.51testing.com/html/38/113838-849231.html 以登录页面密码框定位为例,讲解如何在selenium webdr...
  • lcm_up
  • lcm_up
  • 2013-12-15 15:52
  • 3548

Robot Framework自动化测试-元素定位之xpath

用xpath定位元素几乎是万能的了,可以定位到99%的元素;如果一个元素没有id 没有name那我们该怎么定位该元素了,第一想到的就是用xpath了。 在网上copy了一段代码,就以这个做说明吧,x...
  • cz9025
  • cz9025
  • 2017-04-19 16:50
  • 2205

在Selenium WebDriver中使用By.Xpath快速定位页面元素

以登录页面密码框定位为例,讲解如何在selenium webdriver中通过by.xpath定位页面元素,快速获取元素位置并完成操作。   问题引入:   用Selenium IDE录制后的脚本如下...

Selenium自动化测试之Xpath网页元素定位

XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath虽然是被设计用来搜寻XML文档的,不过它也能很好的在HTML文档中工作,并且大部...
  • ywyxb
  • ywyxb
  • 2017-02-28 15:48
  • 293
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)