xpath语法

作为例子的XML文档

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

选取节点

XPath通过路径表达式在XML文档中选取节点。可以通过一条语句或相应的步骤选取一个节点。下面列出了最常使用的路径表达式:
Nodename 选取节点下的所有子节点
/           选取根节点
//           选取文档中所有符合条件的节点,不管该节点在什么地方
.            当前节点
..            当前节点的父节点
@           选取属性

实例说明

根据本文首页上面的xml文档举例说明:
bookstore           选取bookstore元素的所有子节点
/bookstore          据对路径 选取bookstore元素的根节点
bookstore/book       bookstore/book 下的所有子元素
//book              选取文档中的所有book元素
bookstore//book     文档中处于bookstore下的所有book元素
//@lang           所有lang属性 

Predicates
条件 谓词

它指定了选取节点的范围。通常使用方括号[ ]来指定条件。
/bookstore/book[1]        选取bookstore节点下的第一个book元素
/bookstore/book[last()]       bookstore下的最后一个book元素
/bookstore/book[last()-1]     倒数第二个book
/bookstore/book[position()<3]  选取前两个book元素
//title[@lang]             选取包含lang属性的所有title元素
//title[@lang=”eng”]     lang属性为“eng”的所有title元素
/bookstore/book[price>35.] 选取bookstore节点下的所有包含price元素大于35.00的book元素
/bookstore/book[price>35.00]/title 选取bookstore节点下的所有包含price元素大于35.00的book节点下的title元素

选取未知节点

可以通过 XPath 通配符选取未知的XML元素。
*      匹配任意的节点元素
@*      任意的节点属性
node() 任意种类的节点

实例
/bookstore/*      bookstore节点中的任意子节点元素
//*               选取文档中的所有元素
//title[@*]         选取包含任意属性的title元素


选取多个路径

你可以同过在表达式中添加 | 来选取多个路径。

实例
//bookt/title | //book/price      选取book节点中的所有title和price元素
//title | //price                 文档中所有title和price元素

原文地址: http://www.w3pop.com/learn/view/p/1/doc/xpath_nodes/

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值