xpath用法詳解

2021-10-13 13:02:53 字數 3585 閱讀 3403

#選擇不包含class屬性的節點

result = article.xpath(

"//span[not(@class)]");

#選擇不包含class和id屬性的節點

result = article.xpath(

"//span[not(@class) and not(@id)]");

#選擇不包含class="expire"的span

result = article.xpath(

"//span[not(contains(@class,'expire'))]");

#選擇包含class="expire"的span

result = article.xpath(

".//span[contains(@class,'expire')]");

#查詢name屬性中開始位置包含'name1'關鍵字的頁面元素

result = article.xpath(

"//input[starts-with(@name,'name1')]");

#查詢name屬性中包含na關鍵字的頁面元素

result = article.xpath(

"//input[contains(@name,'na')]");

result = article.xpath();

result = article.xpath();

result = article.xpath();

result = article.xpath(

"//input[@type='submit'][@name='****']");

result = article.xpath(

"//input[@type='submit' and @name='****']");

result = article.xpath(

"//input[@type='submit' or @name='****']");

#它會取class含有有a和b的元素

result = article.xpath(

'//div[contains(@class,"a") and contains(@class,"b")]'

)#它會取class 含有 a 或者 b滿足時,或者同時滿足時的元素

result = article.xpath(

'//div[contains(@class,"a") or contains(@class,"b")]'

)#查詢所有input標籤中含有type屬性的元素

result = article.xpath(

"//input[@type]");

#匹配id以aa開頭的元素,id='aaname'

result = article.xpath(

"//input[start-with(@id,'aa')]");

#匹配id以aa結尾的元素,id='nameaa'

result = article.xpath(

"//input[ends-with(@id,'aa')]");

#匹配id中含有aa的元素,id='nameaaname'

result = article.xpath(

"//input[contains(@id,'aa')]");

#匹配所有input元素中含有屬性的name的元素

result = article.xpath(

"//input[@*='name']");

#選取 id 屬性為 form 的任意屬性內部,並且 type 屬性為 text 的任意元素。這裡會找到 input

result = article.xpath(

"//*[@id='form']//*[@type='text']");

#先通過/..找到 span 的父節點,再通過父節點找到 div

result = article.xpath(

"//span[@class='bg']/../div");

#查詢倒數第幾個子元素,選取 form 下的倒數第乙個 span

result = article.xpath(

"//form[@id='form']/span[last()-1]");

#使用 position() 函式,選取 from 下第二個 span

result = article.xpath(

"//form[@id='form']/span[position()=2]");

#使用 position() 函式,選取下標大於 2 的 span

result = article.xpath(

"//form[@id='form']/span[position()>2]");

#使用|,同時查詢多個路徑,取或

result = article.xpath(

"//form[@id='form']//span | //form[@id='form']//input");

# 獲取每組li中的第乙個li節點裡面的a的文字

result = html.xpath(

"//li[1]/a/text()"

)# 獲取每組li中最後乙個li節點裡面的a的文字

result = html.xpath(

"//li[last()]/a/text()"

)# 獲取每組li中前兩個li節點裡面的a的文字

result = html.xpath(

"//li[position()<3]/a/text()"

)# 獲取每組li中倒數第三個li節點裡面的a的文字

result = html.xpath(

"//li[last()-2]/a/text()"

)# 獲取li的所有祖先節點

result = html.xpath(

"//li[1]/ancestor::*"

)# 獲取li的所有祖先中的ul節點

result = html.xpath(

"//li[1]/ancestor::ul"

)# 獲取li中a節點的所有屬性值

result = html.xpath(

"//li[1]/a/attribute::*"

)#獲取li子節點中屬性href值的a節點

result = html.xpath(

)# 獲取body中的所有子孫節點a

result = html.xpath(

"//body/descendant::a"

)#獲取li中的第三個節點

result = html.xpath(

"//li[3]"

)#獲取第三個li節點之後所有li節點

result = html.xpath(

"//li[3]/following::li"

)#獲取第三個li節點之後所有同級li節點

result = html.xpath(

"//li[3]/following-sibling::*"

)#獲取ul li下面所有span標籤的文字值

result = html.xpath(

"//ul//li//span//text()"

)

xpath的用法(例項詳解)

1 xpath基本語法 article 選取所有article元素的所有子節點 article 選取根元素article article a 選取所有屬於article的子元素的a元素 div 選取所有div子元素 不論出現在文件任何地方 article div 選取所有屬於article元素的後代...

Xpath基本用法

my listr tree findnodes as string ul id brand li a class bd 可以利用正規表示式來過濾。程式設計中經常會用到xml,net framework提供了專門對xml進行處理的dll,裡面提供了很多對xml處理的方法,在這裡簡單介紹一下xpath的...

Xpath基本用法

定位地圖 driver.find element by xpath text 地圖 多重定位 driver.find element by xpath text 新聞 and name tj trnews 模糊文字查詢 contains text hao 模糊匹配某個屬性 contains name...