举个栗子

--------------------------------------------------------------------------------------

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

<bookstore>
<store1>
<book>
<title lang="eng">Harry Potter1</title>
<price>10</price>
</book>
</store1>
    <shool>    
<store1>
<book>
              <title></title>
              <title id="2"></title>

<title lang="eng">
Harry Potter2
</title>

<title lang="cn">哈利波特2</title>

<price>20</price>

</book>
</store1>
</school>
    <book>
<title lang="eng">Harry Potter3</title>
<price>30</price>
</book>
    <book>
<title lang="eng">Harry Potter4</title>
<price>40</price>
</book>
</bookstore>
-------------------------------------------------------------------------------------------

定义:

节点、属性、内容之后的关系,例如:

<title lang="cn">哈利波特2</title>

a.title是节点(元素);

b.lang是titile节点的属性;

c."cn"是lang的属性值;

d.“哈利波特2”是title节点的内容;

综上:一个节点包含了属性和内容两部分,属性和内容可以同时为空。

1、单斜线“/”:如果以“/”开始,那么该路径表示到一个节点的绝对路径,从根节点开始选取。 如:

选中bookstore根节点:  /bookstore

选中bookstore下的book子节点:  /bookstore/book

选中store1下的book子节点:   /bookstore/store1/book

2、双斜线“//”:如果以“//”开始,表示选中文档中所有满足“//”之后规则的节点(无论层级关系)。如:

选中所有book子节点(包括bookstore,store1和school/store1下的book节点):   //book

选中所有store1下的book子节点(包括store1和school/store1下的book节点):   //store1/book

3、星号“*”:表示选择所有由“*”之前的路径所定位的所有节点。如:

选中bookstore下所有子节点:/bookstore/*

选中文档中所有节点: //*

4、@:使用前缀@来指定节点的属性。如:

选中所有取名为lang的属性://@lang 

5、方括号"[]":进一步限定节点,用来查找某个特定的节点或者包含某个指定的值的节点。如:

选中storebook下第二个book节点:  /storebook/book[2]  或者  /storebook/book[last()]

选中storebook下前两个book节点:  /storebook/book[position()<3]

选中有id属性的title节点://title[@id]

选中属性不为空的title节点: //title[@*]

选中属性为空的title节点: //title[not(@*)]

6、属性值作为节点的筛选条件。如:

选中属性值:id为2的title节点://title[@id='2']

选中属性值:lang为cn的title节点: //title[@lang='cn']

7、分隔符“|”:将多个路径合并在一起(可以合并的路径数目没有限制)。如:

选择所有的title节点和price节点://title|//price

参考文献:http://www.w3school.com.cn/xpath/xpath_syntax.asp

最新文章

  1. Json的序列化与反序列化
  2. office快速制作简历
  3. 【Mongodb】3.X 配置身份验证
  4. js 表单内容使用ajax以json格式混合提交
  5. MVC+easyui 完整实现
  6. bootstrap-fileinput初体验
  7. Android 点击事件,4种回调。
  8. Fix Windows 7 Msvcp71.dll And Msvcr71.dll Missing Error
  9. Android如何获得手机power_profile.xml文件
  10. nodejs异步案例
  11. windows下安装Virtualenvwrapper
  12. Optimizing Item Import Performance in Oracle Product Hub/Inventory
  13. Oracle技术面试问题
  14. [翻译] 对正在使用EF6x开发人员的一些话
  15. Kubernetes 实践指南之Kubernetes 的命令行工具详解
  16. 使用Microsoft自带的小工具将可执行文件(.exe)注册为系统服务
  17. iOS - UILabel添加图片之富文本的简单应用
  18. 软件工程 #02# Entity Relationship Diagram VS. 用 UML 中的类图表示 E-R 图
  19. std::u32string conversion to/from std::string and std::u16string
  20. Java并发编程原理与实战一:聊聊并发

热门文章

  1. HTML5本地存储 localStorage操作使用详解
  2. Sentinel全局Feign默认熔断设计实现
  3. 8. vue给标签动态绑定title
  4. Salesforce学习之路(九)Org的命名空间
  5. Ubuntu 快速安装Gitlab-ce
  6. kubectl简介
  7. map的遍历方法 map.entrySet()
  8. 963. Minimum Area Rectangle II
  9. 一文带你掌握MySQL查询优化技能
  10. 2. robot framework 关键字,变量,循环