xpath即為xml路徑語言,它是一種用來確定xml(標準通用標記語言的子集)文件中某部分位置的語言。xpath基於xml的樹狀結構,提供在資料結構樹中找尋節點的能力。起初 xpath 的提出的初衷是將其作為乙個通用的、介於xpointer與xslt間的語法模型。但是 xpath 很快的被開發者採用來當作小型查詢語言。
使用xpath的套路:
通過dom呼叫node中的如下方法,每個方法中的引數用 「xpath表示式」—string型
selectnodes(xpath)
selectsinglenode(xpath)
selectobject(xpath)
乙個小細節: 以上3個方法是node中的方法,因此任意節點都可以呼叫,
但所選擇的卻是document下面的所有符合xpath的節點或物件–不是當前呼叫節點子樹範圍(區域性),而是整棵樹(全域性)
注意,dom4j使用xpath時,要匯入乙個它的依賴包:jaxen.jar
public void demo1() throws exception
}
演示根據屬性來用xpath定位—登入模組常用
public
void
demo2() throws exceptionelse
}
xpath的語法:
運算子/特殊字元說明/
此路徑運算子出現在模式開頭時,表示應從根節點擊擇。
//從當前節點開始遞迴下降,此路徑運算子出現在模式開頭時,表示應從根節點遞迴下降。
.當前上下文。
..當前上下文節點父級。
*萬用字元;選擇所有元素節點與元素名無關。(不包括文字,注釋,指令等節點,如果也要包含這些節點請用node()函式)
@屬性名的字首。
@*選擇所有屬性,與名稱無關。
( )括號運算子(優先順序最高),強制運算優先順序。
[ ]應用篩選模式(即謂詞,包括」過濾表示式」和」軸(向前/向後)」)
丨兩個節點集合的聯合,如://messages/message/to
div,
浮點除法。
and, or
邏輯運算。
mod,
求餘。not()
邏輯非=等於
常用表示式例項:
運算子/特殊字元說明/
document root文件根.
/*選擇文件根下面的所有元素節點,即根節點(xml文件只有乙個根節點)
/node()
根元素下所有的節點(包括文字節點,注釋節點等)
/text()
查詢文件根節點下的所有文字節點
/messages/message
messages節點下的所有message節點
/messages/message[1]
messages節點下的第乙個message節點
/messages/message[1]/self::node()
第乙個message節點(self軸表示自身,node()表示選擇所有節點)
/messages/message[1]/node()
第乙個message節點下的所有子節點
/messages/message[1]/*[last()]
第乙個message節點的最後乙個子節點
//message[@id=1] //child::node()
遞迴所有子節點(無限深度)
//message[position()=1]/node()
選擇id=1的message節點以及id=0的message節點
//message[@id=0]/ancestor::*
ancestor軸表示所有的祖輩,父,祖父等。向上遞迴
/messages/message[1]/sender/following::*
查詢第乙個message節點的sender節點後的所有同級節點,並對每乙個同級節點遞迴向下查詢。
//bbb
任意深度的bbb
//ddd/bbb
ddd下面的兒子bbb
/aaa/ccc/ddd
a下面的c下面的d下面的所有
/*/bbb
有乙個祖先的bbb
//@id
任意深度的id屬性
//bbb[@id]
有id屬性的bbb
//bbb[@id=』b1』]
id值=b1的bbb
//bbb[postion()mod2=0]
偶數字的bbb
//*[string-length(name())=3]
name()長度為3的
XPath學習筆記
xpath 是一門在 xml 文件中查詢資訊的語言。xpath 用於在 xml 文件中通過元素和屬性進行導航。xpath包含有乙個標準的函式庫,是xslt中的主要元素,同時也是乙個w3c標準。若把xml用樹來表示,那麼根節點最上層的節點,根節點是唯一的。樹上其它的所有元素節點都是子節點或後代節點。元...
Xpath學習筆記
在 xpath 中,有七種型別的節點 元素 屬性 文字 命名空間 處理指令 注釋以及文件節點 或稱為根節點 lang eng harry pottertitle 29.99price book lang eng learning xmltitle 39.95price book bookstore ...
XPath學習筆記
使用lxml對爬取的網頁資料進行解析時,最長使用的方式是xpath,在scrapy爬蟲框架中也提供了相應的函式呼叫.xpath 和.css css 的方式實質上底層仍然被轉換成xpath方式進行處理。首先是xpath的基本使用方法,如圖 html doc 這是乙個鏈結 美女,約嗎?兄弟,你好嗎 se...