xpath 快速入门

有关 xpath 的原始文档为: http://www.w3.org/TR/xpath/

w3schools 的文档为: http://www.w3schools.com/xpath/xpath_syntax.asp

英文不好的同学可看这篇: http://blog.csdn.net/mynameisyoudi/article/details/2692061


以前用 firefox 扩展 autopager 时就接触过不少 xpath, 但般使用 autopager 里的 "链接(内容)选择器" 可以很方便的获取 xpath, 所以也没有深入的观察过;最近需要抓取网页, 有些 xpath 需要自己手写, 碰到了几百个 xpath 之后也总算有些许心得,以下只是举例说明,如果想深入了解请看上面三篇文章;

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book isbn="9787544253956">
  <title lang="chs">Xpath 入门</title>
  <price>29.99</price>
</book>

<book isbn="9787538288858">
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

获得第一个 book 节点,xpath 为: //book[1]  或 //book[@isbn="9787544253956"]

获得第二个 book 节点,xpath 为: //book[2]  或 //book[@isbn="9787538288858"]


获得第一个 book 节点下面的 title 节点的 lang 属性, xpath为://book[1]/title[1]/@lang

获得第一个 book 节点下面的 title 节点的 文本, xpath为://book[1]/title[1]/text()


总结:

  1. xpath 由 // 开始,往后每一层/ 代表一层父子节点关系
  2. 每层里如果有相同的节点, 则可以由下标, 或 [] 里的属性进行标识
  3. 属性由 @xxx 表示, 后面跟的是属性的值, 之间可以是=, >, < 等比较符
  4. 取得一个节点的 text 值, 由 text() 完成
  5. [] 里面可以有多个属性, 多个属性之间由and, or 连接







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值