日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
[XPath]XPath與lxml(二)XPath語法-創(chuàng)新互聯(lián)
XPath 選取節(jié)點時使用的表達(dá)式是一種路徑表達(dá)式。節(jié)點是通過路徑(path)或者步(steps)來選取的。[XPath]XPath與lxm
l(二)XPath語法

本章使用以下 XML 文檔作為示例。

成都創(chuàng)新互聯(lián)是專業(yè)的弓長嶺網(wǎng)站建設(shè)公司,弓長嶺接單;提供網(wǎng)站設(shè)計制作、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行弓長嶺網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
     Harry Potter   29.99       Learning XML   39.95  
選取節(jié)點

以下為基本路徑的表達(dá)方式,記住 XPath 的路徑表達(dá)式都是基于某個節(jié)點之上的,例如最初的當(dāng)前節(jié)點一般是根節(jié)點,這與 Linux 下路徑切換原理是一樣的。

表達(dá)式描述
nodename選取已匹配節(jié)點下名為 nodename 的子元素節(jié)點。
/如果以 / 開頭,表示從根節(jié)點作為選取起點。
//在已匹配節(jié)點后代中選取節(jié)點,不考慮目標(biāo)節(jié)點的位置。
.選取當(dāng)前節(jié)點。
..選取當(dāng)前節(jié)點的父元素節(jié)點。
@選取屬性。
>>> from lxml import etree
>>> xml = """

    
        Harry Potter
        29.99
    
    
        Learning XML
        39.95
    
"""# 得到根節(jié)點>>> root = etree.fromstring(xml)  
>>> print root


# 選取所有book子元素>>> root.xpath('book')  
[, ]

# 選取根節(jié)點bookstore>>> root.xpath('/bookstore')  
[]

# 選取所有book子元素的title子元素>>> root.xpath('book/title')  
[, ]

# 以根節(jié)點為始祖,選取其后代中的title元素>>> root.xpath('//title')    
[, ]

# 以book子元素為始祖,選取后代中的price元素>>> root.xpath('book//price')  
[, ]

# 以根節(jié)點為始祖,選取其后代中的lang屬性值>>> root.xpath('//@lang')    
['eng', 'eng']
預(yù)判(Predicates)

預(yù)判是用來查找某個特定的節(jié)點或者符合某種條件的節(jié)點,預(yù)判表達(dá)式位于方括號中。

# 選取bookstore的第一個book子元素>>> root.xpath('/bookstore/book[1]')          
[]

# 選取bookstore的最后一個book子元素>>> root.xpath('/bookstore/book[last()]')        
[]

# 選取bookstore的倒數(shù)第二個book子元素>>> root.xpath('/bookstore/book[last()-1]')      
[]

# 選取bookstore的前兩個book子元素>>> root.xpath('/bookstore/book[position()<3]')    
[, ]

# 以根節(jié)點為始祖,選取其后代中含有l(wèi)ang屬性的title元素>>> root.xpath('//title[@lang]')     
[, ]

# 以根節(jié)點為始祖,選取其后代中含有l(wèi)ang屬性并且值為eng的title元素>>> root.xpath("http://title[@lang='eng']")    
[, ]

# 選取bookstore子元素book,條件是book的price子元素要大于35>>> root.xpath("/bookstore/book[price>35.00]")    
[]

# 選取bookstore子元素book的子元素title,條件是book的price子元素要大于35>>> root.xpath("/bookstore/book[price>35.00]/title") 
[]
通配符
通配符描述
* 匹配任何元素。
@*匹配任何屬性。
node()匹配任何類型的節(jié)點。
# 選取 bookstore 所有子元素>>> root.xpath('/bookstore/*')  
[, ]

# 選取根節(jié)點的所有后代元素>>> root.xpath('//*')  
[, , , , , , ]

# 選取根節(jié)點的所有具有屬性節(jié)點的title元素>>> root.xpath('//title[@*]')  
[, ]

# 選取當(dāng)前節(jié)點下所有節(jié)點。'
    ' 是文本節(jié)點。>>> root.xpath('node()')  
['
', , '
', , '
']

# 選取根節(jié)點所有后代節(jié)點,包括元素、屬性、文本。>>> root.xpath('//node()')  
[, '
', , '
', , 'Harry Potter', '
', , '29.99', '
', '
', , '
', , 'Learning XML', '
', , '39.95', '
', '
']
或條件選取

使用 "|" 運算符,你可以選取符合“或”條件的若干路徑。

# 選取所有book的title元素或者price元素>>> root.xpath('//book/title|//book/price')  
[, , , ]

# 選擇所有title或者price元素>>> root.xpath('//title|//price')  
[, , , ]

# 選擇book子元素title或者全部的price元素>>> root.xpath('/bookstore/book/title|//price')  
[, , , ]

分享文章:[XPath]XPath與lxml(二)XPath語法-創(chuàng)新互聯(lián)
文章分享:http://www.dlmjj.cn/article/ccodic.html