[XPath]XPath與lxml(一)XPath術語-創(chuàng)新互聯

前言   這是一篇主要介紹 XPath 的文章,由于 JQuery 已經不支持 XPath,所以本文主要通過 Python 的 lxml.etree 來介紹 XPath。[XPath]XPath與lxm
l(一)XPath術語 什么是 XPath ?

XPath 是一門在 XML 文檔中查找信息的語言,對 XPath 的理解是很多高級 XML 應用的基礎,XPath 在 XML 中通過元素和屬性進行導航。

創(chuàng)新互聯建站10多年企業(yè)網站設計服務;為您提供網站建設,網站制作,網頁設計及高端網站定制服務,企業(yè)網站設計及推廣,對地磅秤等多個行業(yè)擁有豐富的網站推廣經驗的網站建設公司。什么是 lxml ?

lxml 是一個用來處理 XML 的第三方 Python 庫,它在底層封裝了用 C 語言編寫的 libxml2 和 libxslt,并以簡單強大的 Python API,兼容并加強了著名的 ElementTree API。

XPath 術語

在 XPath 語境中,XML 文檔被視作節(jié)點樹,節(jié)點樹的根節(jié)點也被稱作文檔節(jié)點。

XPath 將節(jié)點樹中的節(jié)點(Node)分為七類:元素(Element),屬性(Attribute),文本(Text),命名空間(Namespace),處理指令(Processing-instruction),注釋(Comment)和文檔節(jié)點(Document nodes)。

請看一下 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> (這是一個“根”)
<author>J K. Rowling</author> (這是一個“元素”)
lang="en" (這是一個“屬性”)

換個視角理解它:

- bookstore                             (我是根)
    - book                              (我是元素)
        - title                         (我是元素)
            - attributes                (我是屬性)
                - lang  = en            (樓上其實是屬性容器,我才是屬性)
            - text = Harry Potter       (我是文本)
        - author                        (我是元素)
            - text = J K. Rowling       (我是文本)
        - year                          (我是元素)
            - text = 2005               (我是文本)
        - price                         (我是元素)
            - text = 29.99              (我是文本)

以上就是節(jié)點樹的示意圖,看起來是不是很像 YAML 格式,每一行都表示一個節(jié)點,縮進表示各行之間的關系。其中無父或無子的節(jié)點被稱為原子值(Atomic value)也稱基本值,以上等號后面的都是原子值。節(jié)點和基本值都統(tǒng)稱為項目(Item)。

節(jié)點之間的關系 父(Parent)

每個元素都肯定有一個父節(jié)點,最頂層的元素父親是根節(jié)點。同理每個屬性必然有一個父,它們的父是元素。

上文 XML 文檔中,根 bookstore 是元素 book 的父節(jié)點,book 是元素 title, author, year, price 的父節(jié)點,title 是 lang 的父節(jié)點。

子(Children)

元素可以有零或多個子。

上文 XML 文檔中,title, author, year, price 是 book 的子節(jié)點。

同胞(Sibling)

父節(jié)點相同的節(jié)點之間互為同胞,也稱彼此的兄弟節(jié)點。

上文 XML 文檔中,title, author, year, price 彼此互為同胞。

先輩(Ancestor)

某節(jié)點的父節(jié)點、父的父,以此類推一直追溯至根節(jié)點之間所有節(jié)點。

上文 XML 文檔中,title, author, year, price 的先輩就是 book, bookstore。

后代(Descendant)

某節(jié)點的子節(jié)點、子的子,以此類推至最后一個子節(jié)點之間所有節(jié)點。

上文 XML 文檔中,bookstore 的后代就是 title, author, year, price 。

網站標題:[XPath]XPath與lxml(一)XPath術語-創(chuàng)新互聯
網站地址:http://www.muchs.cn/article6/epoog.html

成都網站建設公司_創(chuàng)新互聯,為您提供響應式網站、商城網站、移動網站建設用戶體驗、靜態(tài)網站、App開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

商城網站建設