xpath 用於在xml文件中通過元素和屬性進行導航xpath 使用路徑表示式來選取 xml 或 html 中的節點或者節點集。
在 xpath 中 有七種型別的節點:節點關係 表示式
描述語法示例
nodename
選取此節點的所有子節點,使用者選取標籤名
book
/從根節點擊取
/book
//從匹配選擇的當前節點擊擇文件中的節點,而不考慮他們的位置
//price 選擇任意位置的 price 標籤
.選取當前節點
--..
選取當前節點的父節點--@
選取屬性
//@lang 選擇lang標籤的所有屬性
[n]選取屬於某元素下的第n個子元素,索引從1開始
/bookstore/book[2]
[last()]
選取屬於某個元素的最後乙個元素
/book[last()] last() 當作函式理解
[last()-1]
選取屬於某個元素的最後乙個元素
/book[last()-1]
[position()]
做元素定位使用
/book[position()<3 選擇最前面兩個的book元素]
[@lang]
選擇有屬性為lang的元素
//book[@lang] 選擇有lang屬性的book標籤
[@class=""]
選擇class屬性為某個值的元素
//div[@class="item"] 選擇類名為item的div標籤
*匹配任何元素節點
--@*
匹配任何屬性節點--|
表示"或"
//bookstore/book/title|//bookstore/book/price 表示匹配文章中 bookstore 下 book 標籤下的 title 或這 price 標籤
from lxml import etree
html = '''
everyday italian
giada de laurentiis
2005
30.00
harry potter
j k. rowling
2005
29.99
xquery kick start
james mcgovern
per bothner
kurt cagle
james linn
vaidyanathan nagarajan
2003
49.99
learning xml
erik t. ray
2003
39.95
'''# 將字串轉為html物件
html = etree.html(html)
# 獲取bookstore下book標籤的title標籤
res = html.xpath('//bookstore/book/title')
print(res)
# 返回值(列表中是物件):[, , , ]
# 獲取bookstore下book標籤的title標籤中category屬性值為「web」
res = html.xpath('//bookstore/book/title[@category="web"]')
print(res)
# 返回值(列表中是物件):
# 獲取bookstore下book標籤的title標籤中category屬性值為「web」的標籤的值
res = html.xpath('//bookstore/book/title[@category="web"]/text()')
print(res)
# 返回值(列表中是字串):['xquery kick start']
# 獲取bookstore下book的price屬性為100的標籤下的title()標籤的值
res = html.xpath('//bookstore/book[@price="100"]/title/text()')
print(res)
# 返回值(列表中的是字串):['everyday italian', 'learning xml']
# 獲取bookstore 下book下第1個標籤的所有屬性 [1]:表示選擇第幾個標籤 @*:表示選擇所有的屬性
res = html.xpath('//bookstore/book[1]/@*')
print(res)
# 返回值(列表中是字串)
# 獲取bookstore 下book帶有任意屬性的標籤
res = html.xpath('//bookstore/book[@*]')
print(res)
# 返回值 (列表中的是物件):[, , , ]
# 獲取帶有屬性的title元素的值
res = html.xpath('//title[@*]/text()')
print(res)
# 返回值(列表中的是字串):['everyday italian', 'harry potter', 'xquery kick start']
# 獲取book下的 title 和 price 標籤
res = html.xpath('//book/title | //book/price')
print(res)
# 返回值:(列表中的是物件):[, , , , , , , ]
# 獲取book有category或price屬性的值
res = html.xpath('//book/@category | //book/@price')
print(res)
# 返回值 (列表中的是字串):['100', 'cooking', 'children', 'web', 'web', '100']
補充: Vim 使用筆記
set hlsearch set nohlsearch 搜尋後清除上次的加亮 nohl nohlsearch 拷貝 很有用的一句話,規定了格式選項,讓它換行不自動空格 set formatoptions tcrqn set fo r set noautoindent 再 shift insert 正...
xemacs使用筆記
xemacs使用筆記 xemacs emacs的下一代,由lucid原創 from debian參考手冊.由於不知道什麼時候刪掉了emacs的乙個重要檔案.每次都沒法安裝好.突然發現了xemacs,於是決定使用看看.本人還是菜鳥,僅供交流 我使用的ubuntu系統,所以就直接apt get inst...
TreeView使用筆記
treeview由節點構成,建樹通過對treeview.items屬性進行操作。items是乙個ttreenodes物件,這是乙個ttreenode集。一 針對ttreenodes,也就是 treeview.items,有這些屬性 1 count,節點個數。2 item index 通過index得...