xpath解析数据

xpath是一种用于在xml文档中选择节点的语言,也可以用于在html文档中选择元素路径。虽然xpath最初是为了xml设计的,但它同样适用于html。

节点的关系

  • 同胞
  • 先辈
  • 后代

常用路径表达式

表达式 描述
nodename 选取此节点的所有子节点
/ 从根节点选取
// 从匹配选择的当前节点中选择文档的节点
. 获取当前节点
.. 选取当前节点的父节点
@ 选择属性

通配符

通配符 描述
* 匹配任何元素节点
@ 匹配任何属性节点
node() 匹配任何类型的节点

选择若干路径

表达式 结果
xpath('//div | //table') 获取所有的div与table节点

谓语 (谓语被嵌在方括号内,用来查找特定的节点或包含某个制定的值的节点)

表达式 结果
xpath('/body/div[1]') 选取body下的第1个div节点
xpath('/body/div[last()]') 选取body下最后一个div节点
xpath('/body/div[last()-1]') 选取body下倒数第二个节点
xpath('/body/div[position()<3]') 选取body下前两个div节点
xpath('/body/div[@class]') 选取body下带有class属性的div节点
xpath('/body/div[@class="main"]') 选取body下class属性为main的div节点
xpath('/body/div[price>35.00]') 选取body下price元素大于35的div节点

运算符

运算符 描述
+
-
*
div
= 等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
or
and
mod 计算除法的余数
| 计算两个节点集

七种基本节点类型

节点 描述
element 元素节点,代表xml文档中的标签,例如<book>
attribute 属性节点,表示元素中的属性,例如<book lang='en'>中的lang
text 文本节点,包含在元素内的文本内容,例如<book>harry potter</book>中的harry potter
comment 注释节点,xml文档中的注释,以<!-- ... -->形式存在
root 根节点,代表整个xml文档,是文档最顶层节点
namespace 命名空间节点,用于区分同名但是属于不同上下文的元素
processing 处理指令节点,用于提供给xml处理器的指令,通常以<? ... ?>形式出现

xpath轴

posted @ 2024-09-29 22:03  松鼠q  阅读(5)  评论(0编辑  收藏  举报