XPath 是一門(mén)在 XML 文檔中查找信息的語(yǔ)言,對(duì) XPath 的理解是很多高級(jí) XML 應(yīng)用的基礎(chǔ),XPath 在 XML 中通過(guò)元素和屬性進(jìn)行導(dǎo)航。
lxml 是一個(gè)用來(lái)處理 XML 的第三方 Python 庫(kù),它在底層封裝了用 C 語(yǔ)言編寫(xiě)的 libxml2 和 libxslt,并以簡(jiǎn)單強(qiáng)大的 Python API,兼容并加強(qiáng)了著名的 ElementTree API。
XPath 術(shù)語(yǔ)在 XPath 語(yǔ)境中,XML 文檔被視作節(jié)點(diǎn)樹(shù),節(jié)點(diǎn)樹(shù)的根節(jié)點(diǎn)也被稱(chēng)作文檔節(jié)點(diǎn)。
XPath 將節(jié)點(diǎn)樹(shù)中的節(jié)點(diǎn)(Node)分為七類(lèi):元素(Element),屬性(Attribute),文本(Text),命名空間(Namespace),處理指令(Processing-instruction),注釋?zhuān)–omment)和文檔節(jié)點(diǎn)(Document nodes)。
請(qǐng)看一下 XML 文檔:
<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book><titlelang="en">Harry Potter</title><author>J K. Rowling</author>
<year>2005</year><price>29.99</price></book></bookstore>
以上 XML 文檔中:
<bookstore> (這是一個(gè)“根”)
<author>J K. Rowling</author> (這是一個(gè)“元素”)
lang="en" (這是一個(gè)“屬性”)
換個(gè)視角理解它:
- bookstore (我是根)
- book (我是元素)
- title (我是元素)
- attributes (我是屬性)
- lang = en (樓上其實(shí)是屬性容器,我才是屬性)
- text = Harry Potter (我是文本)
- author (我是元素)
- text = J K. Rowling (我是文本)
- year (我是元素)
- text = 2005 (我是文本)
- price (我是元素)
- text = 29.99 (我是文本)
以上就是節(jié)點(diǎn)樹(shù)的示意圖,看起來(lái)是不是很像 YAML 格式,每一行都表示一個(gè)節(jié)點(diǎn),縮進(jìn)表示各行之間的關(guān)系。其中無(wú)父或無(wú)子的節(jié)點(diǎn)被稱(chēng)為原子值(Atomic value)也稱(chēng)基本值,以上等號(hào)后面的都是原子值。節(jié)點(diǎn)和基本值都統(tǒng)稱(chēng)為項(xiàng)目(Item)。
節(jié)點(diǎn)之間的關(guān)系 父(Parent)每個(gè)元素都肯定有一個(gè)父節(jié)點(diǎn),最頂層的元素父親是根節(jié)點(diǎn)。同理每個(gè)屬性必然有一個(gè)父,它們的父是元素。
上文 XML 文檔中,根 bookstore 是元素 book 的父節(jié)點(diǎn),book 是元素 title, author, year, price 的父節(jié)點(diǎn),title 是 lang 的父節(jié)點(diǎn)。
子(Children)元素可以有零或多個(gè)子。
上文 XML 文檔中,title, author, year, price 是 book 的子節(jié)點(diǎn)。
同胞(Sibling)父節(jié)點(diǎn)相同的節(jié)點(diǎn)之間互為同胞,也稱(chēng)彼此的兄弟節(jié)點(diǎn)。
上文 XML 文檔中,title, author, year, price 彼此互為同胞。
先輩(Ancestor)某節(jié)點(diǎn)的父節(jié)點(diǎn)、父的父,以此類(lèi)推一直追溯至根節(jié)點(diǎn)之間所有節(jié)點(diǎn)。
上文 XML 文檔中,title, author, year, price 的先輩就是 book, bookstore。
后代(Descendant)某節(jié)點(diǎn)的子節(jié)點(diǎn)、子的子,以此類(lèi)推至最后一個(gè)子節(jié)點(diǎn)之間所有節(jié)點(diǎn)。
上文 XML 文檔中,bookstore 的后代就是 title, author, year, price 。
網(wǎng)站標(biāo)題:[XPath]XPath與lxml(一)XPath術(shù)語(yǔ)-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://chinadenli.net/article6/epoog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、商城網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、用戶(hù)體驗(yàn)、靜態(tài)網(wǎng)站、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)