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

1 篇文章 0 订阅
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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值