xpath规则设置教程

xpath是一种标签提取工具,如需系统学习的话,大家可以百度“xpath教程"。

一,本软件常用的xpath规则

比如,我们有下面一段代码:

<title>ttt</title>

<span>sssss</span>

<div id="a">aaa</div>

<div class="b">bbb</div>

<div class="c">

    <p>111</p>

    <p>222</p>

    <p>333</p>

</div>

那么,

 

1,使用"//*",指的就是提取所有的内容,执行后我们就可以提取出上面所有的标签和内容。

2,使用"//div",我们可以提取所有div标签下的内容。

执行后可得以下内容:

<div id="a">aaa</div>

<div class="b">bbb</div>

<div class="c">

    <p>111</p>

    <p>222</p>

    <p>333</p>

</div>

3,使用"//div[@class='c']",指的则是提取class名为"c"的div标签下的内容。

 

执行后我们可以提取到如下这段内容:

<div class="c">

    <p>111</p>

    <p>222</p>

    <p>333</p>

</div>

4,使用"//div[@id='a'",指的是提取id名为"a"的div标签下的内容。

 

执行后我们可以提取到如下内容:

<div id="a">aaa</div>

 

5,要提取title和span中的内容,我们则可以使用"//title"和"//span"。

6,使用"//div[class='c'][2]",我们则可以提取后class名为"c"的div标签中的第2个元素的内容。

执行后可得以下内容:

 <p>222</p>

7,使用"//div[class='c'][last()]",我们则可以提取后class名为"c"的div标签中的倒数第1个元素的内容。

 

执行后可得以下内容:

<p>333</p>

8,使用"//div[class='c'][last()-1]",我们则可以提取后class名为"c"的div标签中的倒数第2个元素的内容。

 

执行后可得以下内容:

<p>222</p>

9,如果想要通过"<p>"标签来定位"<div class="c">"标签下的内容的话,我们还可以使用规则"//p/.."。

 

执行后可得以下内容:

<div class="c">

    <p>111</p>

​​​​​​​    <p>222</p>

​​​​​​​    <p>333</p>

</div>

10,如果进行多规则匹配的话,我们还可以使用分隔符"|"来匹配多条规则,例如规则:"//span|//div[@class='c'][1]|//title"

 

执行后我们可以得到如下内容:

<span>sssss</span>

<div class="c">

    <p>111</p>

    <p>222</p>

    <p>333</p>

</div>

<title>ttt</title>

 

二,一些基本的xpath语法

nodename 选取此节点的所有子节点

/     从根节点选取

//    从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置

.     选取当前节点

..    选取当前节点的父节点

@    选取属性

*     匹配任何元素节点

三,更多xpath语法实例

1. starts-with函数

获取以xxx开头的元素

例子:xpath(‘//div[stars-with(@class,”test”)]’)

2 contains函数

获取包含xxx的元素

例子:xpath(‘//div[contains(@id,”test”)]’)

3 and

与的关系

例子:xpath(‘//div[contains(@id,”test”) and contains(@id,”title”)]’)

4 text()函数

例子1:xpath(‘//div[contains(text(),”test”)]’)

例子2:xpath(‘//div[@id=”“test]/text()’)

网站公告: