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中使用了兩個「//」是什麼意思
兩個都是任意的意思,只是前面一個的任意的範圍比後面一個要大,後面一個任意是在前面的基礎上進一步任意。