`

XPATH

    博客分类:
  • xml
xml 
阅读更多
原文:http://hi.baidu.com/fztd2/item/b6a03d7c9860f3356e29f6d7

XPath常用定位节点元素语句总结
这是很久以前在csdn的blog上写的文章,现在转过来,那个blog就作为附属站点了。

将一个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")] 所有不包含元素last-name的值为Bob的节点

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

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

21. //A[text()="next"] 锚文本内容等于next的A节点



最后推荐一款在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
分享到:
评论
1 楼 cainiao1923 2013-10-16  
http://hi.baidu.com/jakisou/item/b9ef5927db68bed7a517b6e3

相关推荐

    Xpath生成器,自动生成XPATH,C#版

    Xpath生成器,自动生成可用的Xpath

    经典xpath教材打包

    经典xpath教材打包, XPath是W3C定义的语言和正式的W3C推荐的语言,W3C拥有XML Path Language (XPath) Version 1.0规范。XPath诞生于1999年,作为对XSLT和XPointer语言的补充,但近来已成为流行的独立语言,因为单个...

    Xpath生成器,自动生成可用的Xpath。

    Xpath生成器,可以通过输入的文件,进行匹配,生成全部可用的Xpath,犹豫HTML中部分标签允许无结束,如:("LINK" ,"META","SCRIPT","IMG" ,"INPUT", "FORM")故已经被忽略,如有朋友发现其中有问题,请告诉我哦...

    javascript-xpath-latest.js

    1. 更换默认的xpath库 除了ie,其他主要浏览器都是内置对xpath的支持的,但ie不行,所以selenium 使用了javascript库,默认使用的是ajaxslt,这个会比较慢,可以换成 javascript-xpath, 虽然比firefox还是慢...

    xpath-helper.zip

    xpath-helper

    XPath教程(描述XPath的用法)

    XPath:描述了XPath的用法,XPath多应用于XML文件的解析,这是一个非常棒的文档!

    XPathHelper插件forChrome(爬虫网页解析工具)v1.0.13官方免费安装版

    XPath Helper插件是一款可以安装到谷歌浏览器上使用并且支持所有chrome内核浏览器的爬虫网页解析工具,使用XPath Helper可以让你轻松获取HTML元素的xPath,不用再手动获取捕捉,极大地提高了我们的工作效率。...

    xpath-helper for MAC

    Xpath helper 2.0.2,适用于MAC版, 提供的了压缩包,下载后,解压缩-打开chrome->更多工具->扩展程序->加载已经解压的扩展程序->找到解压的文件夹选中,此时会发现地址栏后面多了一个“X”的图标,此时F12,点击...

    IE下获取XPATH小工具源码_xpath_

    C#小工具箱 IE下获取XPATH小工具源码

    xpath实例语法教程及IBM使用的xpath路径观察器

    不可多得的xpath实例语法教程,里面有详细的实例,是学习xpath的好助手。同时还提供了IBM等大公司都在使用的xpath操作选择路径的观察器及验证器,该观察器及验证器功能很强大,你只要输入xpath查找路径,验证器会...

    自动解析HTML代码,生成所有可用Xpath

    由于最近需要对网站进行数据提取,故是用Xpath,在网上并没有找到可以自动生成Xpath。 所以抽出一点时间,赶出来一个可以自动生成Xpath的小工具,并支持在生成好的Xpath中进行匹配自己需要的内容,并输入对应的Xpath...

    XpathDemo.zip

    现在常用的网页解析工具有:Jsoup,JsoupXpath,HtmlCleaner。 jsoup 是一款Java 的XML、HTML解析器,可直接解析某个URL地址、HTML文本内容和已经存在的文件。 JsoupXPath是基于Jsoup的拓展,使用路径的形式解析XML...

    XPath教程.rar

    XPath 将一个 XML 文档建模成为一棵节点树,有不同类型的节点,包括元素节点,属性节点和正文节点。XPath 定义了一种方法来计算每类的节点的字串值。一些节点的类型也有名字。XPath 充分支持 XML 命名空间[XML ...

    谷歌浏览器XPath2.0插件

    XPath Helper插件是一款可以安装到谷歌浏览器上使用支持所有chrome内核浏览器的爬虫网页解析工具,使用XPath Helper可以让你轻松获取HTML元素的xPath,不用再手动获取捕捉。

    XPathUtil,根据Xpath解析xml文件

    之前找了好多感觉和自己的需求不太一样,这个可以根据Xpath解析出来xml里所有的信息,十分好用 举个例子 xmlPath = "E://upload/xml/1580242.163.xml"; XPathUtil util = XPathUtil.newInstance(xmlPath); Product ...

    XPath Helper 2.0.2网页插件

    xpath

    xpath定位,xpath定位,xpath定位

    Selenium xpath,

    XPath Helper.crx

    xpath helper插件是一款免费的chrome爬虫网页解析工具。可以帮助用户解决在获取xpath路径时无法正常定位等问题。该插件主要能帮助你在各类网站上通过按shift键选择想要查看的页面元素来提取查询其代码,同时你还能对...

    XPath Helper插件是一款Chrome爬虫网页解析工具

    XPath Helper插件是一款免费的Chrome爬虫网页解析工具,可以帮助用户解决在获取XPath路径时无法正常定位等问题 安装了XPath Helper后就能轻松获取HTML元素的XPath,该插件主要能帮助我们在各类网站上查看的页面元素...

    Schema的Xpath教程

    ZVON.org - XPath Tutorial Please, start with: General/examples.html (English) General_cze/examples.html (česky) General_dut/examples.html (Nederlands) General_fre/examples.html (Français) General_...

Global site tag (gtag.js) - Google Analytics