xpath

1 什麼是xpathhtml

xpath是xml path的縮寫,它是一種表達式語言,用於定位xml樹中的結點。node

2 「/」和「//」的區別函數

好比"/html/body",取出來的就是該html的body部分全部的內容。spa

「/」是用來構成絕對路徑的,從root結點開始。xml

「//」是相對尋址的,好比//p,會找到html中的全部的<p></p>,不管它們在什麼位置。htm

3 predicate對象

方括號[xxx]被稱爲predicate,它做用於一個子集合,用於進一步縮小該子集合的範圍。element

好比://list/item,將會將list node下全部的item node都選定,可是若是加上一個predicate,//list/item[@lang],那麼就加了一個條件,該item必須有@lang這個屬性,這樣將不知足條件的item node給剔除掉了。it

4 axisast

axis是用來進行更加精準定位的。axis定義了一個相對於當前node的一個node  set,也就是說,它基於的對象是node。

首先經過絕對路徑定位一個比較好定位的node,而後經過axis進行精準定位。

例如:

//div[@id='div1']/child::img

首先找到id爲div1的div,而後找到它全部的child node中名字爲img的node。

5 xml的node

5.1 基本的node

element node和attribute node

<bookstore> (root element node)

<author>J K. Rowling</author> (element node)

lang="en" (attribute node)

5.2 node之間的關係,axis就是用的node之間的關係進行的定位

parent,每一個element node和attribute node都只有一個parent。

child,每一個element node有0個、1個或者多個child node。

ancester,全部的祖先的集合,一直到root node。

descendant,全部的child的集合,一直到葉子,即到屬性node。

6 有用的函數

6.1 last()

一個集合中的最後一個元素,用於predicate中。

6.2 text()

獲取一個node中的text()。

7 表達式

>,=,|

「|」兩個集合的並集。

8 一個path中使用了兩個「//」是什麼意思

兩個都是任意的意思,只是前面一個的任意的範圍比後面一個要大,後面一個任意是在前面的基礎上進一步任意。

相關文章
相關標籤/搜索