一亚亲、選取節(jié)點(diǎn)
常用的路勁表達(dá)式:
表達(dá)式描述實(shí)例
nodename選取nodename節(jié)點(diǎn)的所有子節(jié)點(diǎn)xpath('//div')選取了div節(jié)點(diǎn)的所有子節(jié)點(diǎn)
/從根節(jié)點(diǎn)選取xpath('/div')從根節(jié)點(diǎn)上選取div節(jié)點(diǎn)
//選取所有的當(dāng)前節(jié)點(diǎn),不考慮他們的位置xpath('//div')選取所有的div節(jié)點(diǎn)
.選取當(dāng)前節(jié)點(diǎn)xpath('./div')選取當(dāng)前節(jié)點(diǎn)下的div節(jié)點(diǎn)
..選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)xpath('..')回到上一個(gè)節(jié)點(diǎn)
@選取屬性xpath('//@calss')選取所有的class屬性
二乙濒、謂語(yǔ)
謂語(yǔ)被嵌在方括號(hào)內(nèi)赞咙,用來(lái)查找某個(gè)特定的節(jié)點(diǎn)或包含某個(gè)制定的值的節(jié)點(diǎn)
實(shí)例:
表達(dá)式結(jié)果
xpath('/body/div[1]')選取body下的第一個(gè)div節(jié)點(diǎn)
xpath('/body/div[last()]')選取body下最后一個(gè)div節(jié)點(diǎn)
xpath('/body/div[last()-1]')選取body下倒數(shù)第二個(gè)div節(jié)點(diǎn)
xpath('/body/div[positon()<3]')選取body下前兩個(gè)div節(jié)點(diǎn)
xpath('/body/div[@class]')選取body下帶有class屬性的div節(jié)點(diǎn)
xpath('/body/div[@class="main"]')選取body下class屬性為main的div節(jié)點(diǎn)
xpath('/body/div[price>35.00]')選取body下price元素值大于35的div節(jié)點(diǎn)
三责循、通配符
Xpath通過(guò)通配符來(lái)選取未知的XML元素
表達(dá)式結(jié)果
xpath('/div/*')選取div下的所有子節(jié)點(diǎn)
xpath('/div[@*]')選取所有帶屬性的div節(jié)點(diǎn)
四、取多個(gè)路徑
使用“|”運(yùn)算符可以選取多個(gè)路徑
表達(dá)式結(jié)果
xpath('//div|//table')選取所有的div和table節(jié)點(diǎn)
五攀操、Xpath軸
軸可以定義相對(duì)于當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)集
軸名稱表達(dá)式描述
ancestorxpath('./ancestor::*')選取當(dāng)前節(jié)點(diǎn)的所有先輩節(jié)點(diǎn)(父院仿、祖父)
ancestor-or-selfxpath('./ancestor-or-self::*')選取當(dāng)前節(jié)點(diǎn)的所有先輩節(jié)點(diǎn)以及節(jié)點(diǎn)本身
attributexpath('./attribute::*')選取當(dāng)前節(jié)點(diǎn)的所有屬性
childxpath('./child::*')返回當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)
descendantxpath('./descendant::*')返回當(dāng)前節(jié)點(diǎn)的所有后代節(jié)點(diǎn)(子節(jié)點(diǎn)、孫節(jié)點(diǎn))
followingxpath('./following::*')選取文檔中當(dāng)前節(jié)點(diǎn)結(jié)束標(biāo)簽后的所有節(jié)點(diǎn)
following-sibingxpath('./following-sibling::*')選取當(dāng)前節(jié)點(diǎn)之后的兄弟節(jié)點(diǎn)
parentxpath('./parent::*')選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)
precedingxpath('./preceding::*')選取文檔中當(dāng)前節(jié)點(diǎn)開(kāi)始標(biāo)簽前的所有節(jié)點(diǎn)
preceding-siblingxpath('./preceding-sibling::*')選取當(dāng)前節(jié)點(diǎn)之前的兄弟節(jié)點(diǎn)
selfxpath('./self::*')選取當(dāng)前節(jié)點(diǎn)
六速和、功能函數(shù)????
使用功能函數(shù)能夠更好的進(jìn)行模糊搜索
函數(shù)用法解釋
starts-withxpath('//div[starts-with(@id,"ma")]')選取id值以ma開(kāi)頭的div節(jié)點(diǎn)
containsxpath('//div[contains(@id,"ma")]')選取id值包含ma的div節(jié)點(diǎn)
andxpath('//div[contains(@id,"ma") and?contains(@id,"in")]')選取id值包含ma和in的div節(jié)點(diǎn)
text()xpath('//div[contains(text(),"ma")]')選取節(jié)點(diǎn)文本包含ma的div節(jié)點(diǎn)
歡迎加入我的QQ群`923414804`與我一起學(xué)習(xí)歹垫,群里有我學(xué)習(xí)過(guò)程中整理的大量學(xué)習(xí)資料。加群即可免費(fèi)獲取