中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Xpath語法

發布時間:2020-05-16 05:53:09 來源:網絡 閱讀:1017 作者:NewFate1 欄目:編程語言


Xpath簡介

       XPath即為XML路徑語言,它是一種用來確定XML(標準通用標記語言的子集)文檔中某部分位置的語言。XPath基于XML的樹狀結構,有不同類型的節點,包括元素節點,屬性節點和文本節點,提供在數據結構樹中找尋節點的能力。起初 XPath 的提出的初衷是將其作為一個通用的、介于XPointerXSLT間的語法模型。但是 XPath 很快的被開發者采用來當作小型查詢語言。

  簡單來說我們通過Xpath可以獲取XML中的指定元素和指定節點的值。在網絡爬蟲中我們通過會把爬蟲獲取的HTML數據轉換成XML結構,然后通過XPath解析,獲取我們想要的結果。

接下來為大家分享以下xpath的表達式以及用法。

 

一.選取節點

Xpath使用路徑表達式在XML文檔中選取節點。節點是通過沿著路徑來選取的,通過路徑可以找到我們想要的節點或者節點范圍。

表達式 

描述

用法

說明

nodename

選取此節點的所有子節點。

xpath(‘span’)

選取span元素的所有子節點

/

從根節點選取

xpath(‘/div’)

從根節點上選取div節點

//

從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置。

xpath(‘//div’)

從當前節點選取含有div節點的標簽

.

選取當前節點

xpath(‘./div’)

選取當前節點下的div標簽

..

選取當前節點的父節點

xpath(‘../’)

回到上一級節點

@

選取屬性

xpath(“//div[@id=’1001’]”)

獲取div標簽中,含有ID屬性且值為1001的標簽

 

.謂語(Predicates

謂語用來查找某個特定的節點或者包含某個指定的值的節點。

謂語被嵌在方括號中。

表達式描述述

用法說明

/bookstore/book[1]

 選取屬于 bookstore 子元素的第一個 book 元素。

/bookstore/book[last()]

 選取屬于 bookstore 子元素的最后一個 book 元素。

/bookstore/book[last()-1]

 選取屬于 bookstore 子元素的倒數第二個 book 元素。

/bookstore/book[position()<3]

 選取最前面的兩個屬于 bookstore 元素的子元素的 book 元素。

//title[@lang]

 選取所有擁有名為 lang 的屬性的 title 元素。

//title[@lang='eng']

 選取所有 title 元素,且這些元素擁有值為 eng lang 屬性。

/bookstore/book[price>35.00]

 選取 bookstore 元素的所有 book 元素,且其中的 price 元素的值須大于 35.00

/bookstore/book[price>35.00]/title

 選取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值須大于 35.00

 

通配符

XPath 通配符可用來選取未知的 XML 元素,通配指定節點。

 表達式

描述

用法

說明

匹配任何元素節點

xpath/div/*

選取div下的所有子節點

@*

匹配任何屬性節點

xpath(/div[@*])

選取所有帶屬性的div節點

node()

匹配任何類型的節點

xpath(//div[@class=’tb_cls’]).node()

選擇標簽為div且類屬性為tb_cls的所有標簽

 

四.多路徑選擇

通過在路徑表達式中使用“|”運算符,您可以選取若干個路徑。

用法

說明

xpath//book/title |//book/price

選取 book 元素的所有 title price 元素。  

xpath//title| //price

選取文檔中的所有 title price 元素

 

五.XPath

軸可定義相對于當前節點的節點集。

表達式

描述

用法

說明

ancestor

選取當前節點的所有先輩(父、祖父等)

xpath(//div[@id=’123’]/ancestor::*)

選擇標簽為divID號為123的所有先輩標簽

ancestor-or-self

選取當前節點的所有先輩(父、祖父等)以及當前節點本身

xpath(//div[@id=’123’]/ancestor-or-self::*)

選擇標簽為divID號為123的所有先輩標簽且包含自己

attribute

選取當前節點的所有屬性

xpath(//div[@id=’123’]/attribute::class)

選擇標簽為divID號為123的類屬性名稱

child

選取當前節點的所有子元素

xpath(//div[@id=’123’]/child::book)

選擇標簽為divID號為123的所有子元素的為book 節點

descendant

選取當前節點的所有后代元素(子、孫等)

xpath(./descendant::*)

返回當前節點的所有后代節點(子節點、孫節點)

following

選取文檔中當前節點結束標簽后的所有節點

xpath(./following::*)

選取文檔中當前節點結束標簽后的所有節點

parent

選取當前節點的父節點

xpath(./parent::*)

選取當前節點的父節點

preceding

選取文檔中當前節點的開始標簽之前的所有節點

xpath(//div[@id=’123’]/preceding::*)

選擇標簽為divID號為123的開始標簽之前的所有節點

preceding-sibling

選取當前節點之前的所有同級節點

xpath(//div[@id=’123’]/preceding-sibling::*)

選擇標簽為divID號為123的之前的所有同級節點

self

選取當前節點

xpath(./self::*)

選取當前節點

 

六.XPath 運算符

表達式

描述

用法

說明

+

加法  

6 + 4

10

-

減法

6 – 4

2

*

乘法

6 * 4

24

div

除法

8 div   4

2

=

等于

price=9.80

如果 price 9.80,則返回 true。如果 price 9.90,則返回 false

!=

不等于

price!=9.80

如果 price 9.90,則返回 true。如果 price 9.80,則返回 false

<3

小于

price<9.80

如果 price 9.00,則返回 true。如果 price 9.90,則返回 false

<=

小于或等于

price<=9.80

如果 price 9.00,則返回 true。如果 price 9.90,則返回 false

大于

price>9.80

如果 price 9.90,則返回 true。如果 price 9.80,則返回 false

>=

大于或等于

price>=9.80

如果 price 9.90,則返回 true。如果 price 9.70,則返回 false

or

price=9.80   or price=9.70

如果 price 9.80,則返回 true。如果 price 9.50,則返回 false

and

price>9.00   and price<9.90

如果 price 9.80,則返回 true。如果 price 8.50,則返回 false

mod

計算除法的余數

5 mod   2

1

 

七.常用的功能函數

使用功能函數能夠更好的進行模糊搜索

表達式

描述

用法

說明

starts-with

選取id值以ma開頭的div節點

xpath(‘//div[starts-with(@id,”ma”)]‘)

選取id值以ma開頭的div節點

contains

選取id值包含madiv節點

xpath(‘//div[contains(@id,”ma”)]‘)

選取id值包含madiv節點

and

選取id值包含maindiv節點

xpath(‘//div[contains(@id,”ma”)   and contains(@id,”in”)]‘)

選取id值包含maindiv節點

text()

選取節點文本包含madiv節點

xpath(‘//div[contains(text(),”ma”)]‘)

選取節點文本包含madiv節點

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

襄垣县| 宜阳县| 沈阳市| 泰兴市| 砀山县| 二手房| 淮滨县| 吐鲁番市| 峨眉山市| 温州市| 盐亭县| 和田县| 石台县| 卢氏县| 平定县| 霍邱县| 南陵县| 科尔| 秀山| 济宁市| 庄河市| 海口市| 兴仁县| 通许县| 遵义市| 疏勒县| 丰都县| 钟祥市| 宽甸| 阆中市| 德清县| 平和县| 井冈山市| 敖汉旗| 台东县| 灵寿县| 金坛市| 宝山区| 玉田县| 濉溪县| 大英县|