Xpath學習筆記

2021-07-27 10:19:33 字數 1613 閱讀 4043

在 xpath 中,有七種型別的節點:元素、屬性、文字、命名空間、處理指令、注釋以及文件節點(或稱為根節點)。

lang="eng">harry pottertitle>

29.99price>

book>

lang="eng">learning xmltitle>

39.95price>

book>

bookstore>

上述**中,book元素是title、author、year、price的父節點,反過來即是子節點

同胞節點:擁有相同父節點的節點

先輩:某節點的父,父的父

後代:同理類推

路徑表示式 結果

bookstore 選取 bookstore 元素的所有子節點。

/bookstore 選取根元素 bookstore。

注釋:假如路徑起始於正斜槓( / ),則此路徑始終代表到某元素的絕對路徑!

bookstore/book 選取屬於 bookstore 的子元素的所有 book 元素。

//book 選取所有 book 子元素,而不管它們在文件中的位置。

bookstore//book 選擇屬於 bookstore 元素的後代的所有 book 元素,而不管它們位於 bookstore 之下的什麼位置。

//@lang 選取名為 lang 的所有屬性。

例項

/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。

選取未知節點

/bookstore/* 選取 bookstore 元素的所有子元素。

//* 選取文件中的所有元素。

//title[@*] 選取所有帶有屬性的 title 元素。

XPath學習筆記

xpath 是一門在 xml 文件中查詢資訊的語言。xpath 用於在 xml 文件中通過元素和屬性進行導航。xpath包含有乙個標準的函式庫,是xslt中的主要元素,同時也是乙個w3c標準。若把xml用樹來表示,那麼根節點最上層的節點,根節點是唯一的。樹上其它的所有元素節點都是子節點或後代節點。元...

XPath學習筆記

使用lxml對爬取的網頁資料進行解析時,最長使用的方式是xpath,在scrapy爬蟲框架中也提供了相應的函式呼叫.xpath 和.css css 的方式實質上底層仍然被轉換成xpath方式進行處理。首先是xpath的基本使用方法,如圖 html doc 這是乙個鏈結 美女,約嗎?兄弟,你好嗎 se...

Xpath學習筆記

from lxml import etree import os os.path.abspath text first item html1 etree.html text1 result html1.xpath li contains class,li and name item a text 選...