關於xpath的學習筆記

2021-08-01 20:07:36 字數 2416 閱讀 1052

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...