学习笔记——XPath基础

原创 2012年03月29日 21:21:23

在XPath中经常使用的概念:

1:基本值(原子值,Atomic value):用于表示简单的数据值;

2:项(Iterm):一个项代表一个节点或一个基本值,XPath2.0引入;

3:节点集:多个节点;

4:序列:Item和节点集就是序列,XPath2.0引入。

 

XPath支持的节点类型

  • root nodes

  • element nodes

  • text nodes

  • attribute nodes

  • namespace nodes

  • processing instruction nodes

  • comment nodes

 

指定数据类型方法:

使用datatype(data)格式。

e.g.

double(data)

 

 

Location Steps

location step由三个部分组成:

1:一个轴:指定所选节点和当前节点之间的关系;

2:一个节点测试:指定选取节点的节点类型;

3:N个限定谓语:使用任意的表达式进一步提炼所选节点集。

格式

Step:

AxisSpecifiter NodeTest Predicate* | AbbreviatedStep

AxisSpecifier:

AxisName::| AbbrevlatedAxisSpecifier

 

XPath所支持的轴:

ancestor

ancestor-or-self

attribute

child

descendant

descendant-self

following

following-sibling

namespace

parent

preceding

preceding-sibling

self

 

节点测试

XPath支持的节点测试:

1:NameTest:直接具体名称;

2:node():选择轴里的所有节点;

3:text():选择文本节点;

4:comment():选择注释节点;

5:processing-instruction:选择处理指令节点;

6:*:通配符。

 

简化写法

1:省略child轴:因为child为默认轴,所以当轴是child时,可以省略轴;

2:@代表属性轴;

3://代表后代节点:其实就是/descendant-or-self::node()/的简写;

4:.代表当前节点:self::node()的简写;

5:..代表父节点:parent::node()的简写。

 

 

运算符

算数运算符:+、-、*、div、mod。

算数运算时,所有操作都会自动转换为数值。

注意:

1:XPath所有数值都是double类型。

2:对于字符串数值,XPath会截取前后的空白,并转换为数值,如果字符串不是数组,将转换成NaN;

3:ture转换成1,false转换成0;

4:对于节点集,其会先转换成字符串;

5:在表达式中计算两个元素之差时,应在减号前后增加空格。

 

比较运算符:=、!=、<、<=、>、>=。

 

逻辑运算符:and、or。

 

|:用于组合多个路径。

 

表达式

XPath2.0提供了几个表达式:

 

for表达式

作用:循环访问序列中的每一项。

格式:

ForExpr:

SimpleForClause return ExprSingle

SimpleForClause:

for $VarName in ExprSingle (, &VarName in ExprSingle)*

 

if表达式

格式:

if (condition1)

then rtVal1

[else if (condition2)

then rtVal2

...]

else

otherVal

 

示例

if ($widget1/unit-cost < $widget2/unit-cost) 
  then $widget1
  else $widget2

 

if ($part/@discounted) 
  then $part/wholesale 
  else $part/retail

 

some/every表达式

作用:判断序列中的全部项或者任一项是否满足某个条件。

格式

some | every &VarName in ExprSingle (, $varName in ExprSingle)* satisfies ExprSingle

 

示例:

some $x in (1, 2, "cat") satisfies $x * 2 = 4

 

 

 

C语言学习笔记——基础知识篇

  • 2009年02月13日 12:44
  • 287KB
  • 下载

Python爬虫学习笔记(3)-XPath与多线程爬虫

Python爬虫学习笔记(3)-XPath与多线程爬虫标签(空格分隔): python 多线程 爬虫...

JAVA学习笔记_XML解析及XPath表达式

1.DOM解析:基于DOM模型解析xml文件。一次性把xml文件加载进内存,然后在内存中构建Document树。比较消耗内存,并不适合读取容量大的xml文件。 1)DOM解析的原理:  xml解析...

XML学习笔记 4. xpath

Xpath 使用

Xpath学习笔记

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或称为根节点)。 Harry Potter 29.99 Learning XML ...

Python 爬虫学习笔记二: xpath 模块

Python 爬虫学习笔记二: xpath from lxml 首先应该知道的是xpath 只是一个元素选择器, 在python 的另外一个库lxml 中, 想要使用xpath 必须首先下载lxml ...

RobotFramework自动化学习笔记01-利用xpath定位元素

在rf中,利用selinum2的关键字进行用例编写时,很多关键字的参数是html元素的定位标识。 最简单的方式,是通过id 或name来描述元素定位信息,如 click  button    id...

XPATH学习笔记

xpath有7种类型的节点 元素 属性 文本 命名空间 处理指令 注释 文档(根)节点 xpath路径表达式 nodename 选取此节点的所有子节点 / 从根节点选取 // 从匹配选择的当前节...

关于xpath的学习笔记

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习笔记——XPath基础
举报原因:
原因补充:

(最多只允许输入30个字)