XPATH语法
Posted hf99
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XPATH语法相关的知识,希望对你有一定的参考价值。
前言
本文大致可以知道/,//,@,[]的用法,还有一些函数的用法
正文
假设有一个根元素school,一个子元素student,一个属性name和一个子元素age,一个子元素class
语法
- school —— 选取school元素的所有节点
- /school —— 选取根元素school
- //student —— 选取所有student元素,不管在哪一个位置
- school/student —— 选取school的子元素student
- school//student —— 选取school元素下的任意student元素
//@name —— 选取所有name属性
- school/student[1] —— 选取school的第一个student子元素
- school/student[last()] —— 选取school的最后一个student子元素
- school/student[last()-1] —— 选取school的倒数第二个student子元素
- school/student[position()<3] —— 选取school的最前面两个student子元素
- //[email protected][name] —— 选取所有拥有name属性的student元素
- //[email protected][name=‘hf‘] —— 选取所有拥有name属性且值为hf的student元素
- /school/student[age>15] —— 选取school元素的所有含有age子元素且age子元素的值大于15的student元素
/school/student[age>15]/class —— 满足上一个条件的class元素
通配符
- —— 匹配任何元素节点
- @* —— 匹配任何属性节点
node() —— 匹配任何类型的节点
- /school/* —— 选取school元素的所有子节点
- //* —— 选取文档中的所有元素
//student[@*] —— 选取所有带有属性的student元素
轴
使用方式轴名::元素或方法
- ancestor —— 选取当前节点的所有先辈(父、祖父等)。
- ancestor-or-self —— 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。
- attribute —— 选取当前节点的所有属性。
- child —— 选取当前节点的所有子元素。
- descendant —— 选取当前节点的所有后代元素(子、孙等)。
- descendant-or-self —— 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
- following —— 选取文档中当前节点的结束标签之后的所有节点。
- namespace —— 选取当前节点的所有命名空间节点。
- parent —— 选取当前节点的父节点。
- preceding —— 选取文档中当前节点的开始标签之前的所有节点。
- preceding-sibling —— 选取当前节点之前的所有同级节点。
- self —— 选取当前节点。
函数
- text() —— 返回该元素的文本
- substring()
- position() —— 返回当前正在被处理的节点的 index 位置。
例子:
//book[position()<=3] 选择前三个 book 元素
- last() —— 返回最后一个
- name() —— 返回当前节点的名称或指定节点集的第一个节点
- count() —— 返回节点的数量
参考链接
http://www.w3school.com.cn/xpath/index.asp
以上是关于XPATH语法的主要内容,如果未能解决你的问题,请参考以下文章
在下面的代码片段中的剩余 ='passthrough' 处的代码中出现语法错误