Xpath语法学习记录

 

 

高级参考https://blog.csdn.net/wudaoshihun/article/details/82226122

举例:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6     </head>
 7     <body>
 8         <div class="bookstore">
 9             <div class="book">
10                 <p class="title">张三</p>
11                 <p class="price">29.9</p>
12                 <p><a href="https://www.baidu.com">百度一下</a></p>
13                 
14             </div>
15             <div class="book1">
16                 <p class="title">李四</p>
17                 <p class="price">36.9</p>
18                 <p><a href="https://www.jd.com">京东</a></p>
19                 
20             </div>
21             <div class="book2">
22                 <p class="title1" a="a">王五</p>
23                 <p class="price1">30</p>
24                 <p><a href="https://www.taobao.com">淘宝</a></p>
25             </div>
26             
27         </div>
28     </body>
29 </html>
30 

 

选取节点:

/       ......从根节点选取。

----->>:    /html/body/div/div/p

----->>:

张三
29.9
百度一下
李四
36.9
京东
王五
30
淘宝

 

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

----->>:    //p

----->>:

张三
29.9
百度一下
李四
36.9
京东
王五
30
淘宝

 

@       ......选取属性。

----->>:   /html/body/div/div/p[@class='title']

----->>:

张三


----->>:  /html/body/div[@class='bookstore']/div[@class='book']/p

----->>:

张三
29.9
百度一下

 

 

谓语

选取元素:

选取属于 子元素的第一个元素:

  /html/body/div[@class='bookstore']/div[@class='book']/p[1]

--->>
    张三

选取属于 子元素的最后一个  元素:

    /html/body/div[@class='bookstore']/div[@class='book']/p[last()]
--->>
    百度一下

选取属于子元素的倒数第二个元素:
    
    /html/body/div[@class='bookstore']/div[@class='book']/p[last()-2]
--->> 
    张三


选取最前面的两个属于元素的子元素的元素:
    /html/body/div[@class='bookstore']/div[@class='book']/p[position()<3]
--->>
    张三
    29.9

    /html/body/div[@class='bookstore']/div[@class='book']/p[position()<2]
--->>
    张三

属性选择:

选取所有拥有属性的 title 元素:
    //p[@class="price"]
--->>
    29.9
    36.9


选取所有p>30的元素
    //div[p>30]
--->>
    李四
    36.9
    京东


选取元素,且其中的 price 元素的值须大于 30:
    /html/body/div/div[p>30]/p[@class="price"]
--->>
    36.9

 

选取多个

选取所有 title 和 price 元素。
    //p[@class ="price"]|//p[@class ="title"]
--->>
29.9
36.9
张三
李四
    
选取 book1、book2 元素的 class 元素 //div[@class = "book"]/p|//div[@class = "book1"]/p --->> 张三 29.9 百度一下 李四 36.9 京东

 

posted @ 2019-07-08 20:57  蘑菇西餐  阅读(121)  评论(0编辑  收藏  举报