色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

xpath簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

瀏覽:366日期:2022-06-04 10:45:34

簡(jiǎn)單說(shuō),xpath就是選擇XML文件中節(jié)點(diǎn)的方法。

所謂節(jié)點(diǎn)(node),就是XML文件的最小構(gòu)成單位,一共分成7種。

- element(元素節(jié)點(diǎn))
- attribute(屬性節(jié)點(diǎn))
- text (文本節(jié)點(diǎn))
- namespace (名稱空間節(jié)點(diǎn))
- processing-instruction (處理命令節(jié)點(diǎn))
- comment (注釋節(jié)點(diǎn))
- root (根節(jié)點(diǎn))

xpath可以用來(lái)選擇這7種節(jié)點(diǎn)。不過(guò),下面的筆記只涉及最常用的第一種element(元素節(jié)點(diǎn)),因此可以將下文中的節(jié)點(diǎn)和元素視為同義詞。

一、xpath表達(dá)式的基本格式

xpath通過(guò)"路徑表達(dá)式"(Path Expression)來(lái)選擇節(jié)點(diǎn)。在形式上,"路徑表達(dá)式"與傳統(tǒng)的文件系統(tǒng)非常類似。

# 斜杠(/)作為路徑內(nèi)部的分割符。
# 同一個(gè)節(jié)點(diǎn)有絕對(duì)路徑和相對(duì)路徑兩種寫法。
# 絕對(duì)路徑(absolute path)必須用"/"起首,后面緊跟根節(jié)點(diǎn),比如/step/step/...。
# 相對(duì)路徑(relative path)則是除了絕對(duì)路徑以外的其他寫法,比如 step/step,也就是不使用"/"起首。
# "."表示當(dāng)前節(jié)點(diǎn)。
# ".."表示當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)

二、選擇節(jié)點(diǎn)的基本規(guī)則

- nodename(節(jié)點(diǎn)名稱):表示選擇該節(jié)點(diǎn)的所有子節(jié)點(diǎn)
- "/":表示選擇根節(jié)點(diǎn)
- "http://":表示選擇任意位置的某個(gè)節(jié)點(diǎn)
- "@": 表示選擇某個(gè)屬性

三、選擇節(jié)點(diǎn)的實(shí)例

先看一個(gè)XML實(shí)例文檔。

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
 <book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
 </book>
 <book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
 </book>
</bookstore>

[例1]

bookstore :選取 bookstore 元素的所有子節(jié)點(diǎn)。

[例2]

/bookstore :選取根節(jié)點(diǎn)bookstore,這是絕對(duì)路徑寫法。

[例3]

bookstore/book :選取所有屬于 bookstore 的子元素的 book元素,這是相對(duì)路徑寫法。

[例4]

//book :選擇所有 book 子元素,而不管它們?cè)谖臋n中的位置。

[例5]

bookstore//book :選擇所有屬于 bookstore 元素的后代的 book 元素,而不管它們位于 bookstore 之下的什么位置。

[例6]

//@lang :選取所有名為 lang 的屬性。

四、xpath的謂語(yǔ)條件(Predicate)

所謂"謂語(yǔ)條件",就是對(duì)路徑表達(dá)式的附加條件。

所有的條件,都寫在方括號(hào)"[]"中,表示對(duì)節(jié)點(diǎn)進(jìn)行進(jìn)一步的篩選。

[例7]

/bookstore/book[1] :表示選擇bookstore的第一個(gè)book子元素。

[例8]

/bookstore/book[last()] :表示選擇bookstore的最后一個(gè)book子元素。

[例9]

/bookstore/book[last()-1] :表示選擇bookstore的倒數(shù)第二個(gè)book子元素。

[例10]

/bookstore/book[position()<3] :表示選擇bookstore的前兩個(gè)book子元素。

[例11]

//title[@lang] :表示選擇所有具有l(wèi)ang屬性的title節(jié)點(diǎn)。

[例12]

//title[@lang="eng"] :表示選擇所有l(wèi)ang屬性的值等于"eng"的title節(jié)點(diǎn)。

[例13]

/bookstore/book[price] :表示選擇bookstore的book子元素,且被選中的book元素必須帶有price子元素。

[例14]

/bookstore/book[price>35.00] :表示選擇bookstore的book子元素,且被選中的book元素的price子元素值必須大于35。

[例15]

/bookstore/book[price>35.00]/title :表示在例14結(jié)果集中,選擇title子元素。

[例16]

/bookstore/book/price[.>35.00] :表示選擇值大于35的"/bookstore/book"的price子元素。

五、通配符

# "*"表示匹配任何元素節(jié)點(diǎn)。
# "@*"表示匹配任何屬性值。
# node()表示匹配任何類型的節(jié)點(diǎn)。

[例17]

//* :選擇文檔中的所有元素節(jié)點(diǎn)。

[例18]

/*/* :表示選擇所有第二層的元素節(jié)點(diǎn)。

[例19]

/bookstore/* :表示選擇bookstore的所有元素子節(jié)點(diǎn)。

[例20]

//title[@*] :表示選擇所有帶有屬性的title元素。

六、選擇多個(gè)路徑

用"|"選擇多個(gè)并列的路徑。

[例21]

//book/title | //book/price :表示同時(shí)選擇book元素的title子元素和price子元素。

標(biāo)簽: XML/RSS
相關(guān)文章:
主站蜘蛛池模板: 国产高清一级片 | 国产欧美精品一区二区三区四区 | 国产精品午夜免费观看网站 | 天天看夜夜看 | 在线观看精品视频网站www | 成人在线不卡视频 | 黄色a网| 精品成人免费视频 | 欧美日韩久久 | 久久88香港三级台湾三级中文 | 亚洲美女性视频 | 女初高中福利视频在线观看 | 欧美日韩综合高清一区二区 | 欧美在线视频不卡 | 日韩毛片在线播放 | 一本色道久久综合 | 精品国产综合成人亚洲区 | 日本不卡不码高清免费观看 | 国产欧美日韩精品在线 | 久久久久久久一线毛片 | 亚洲国产欧美精品 | 91精品欧美一区二区综合在线 | 国产福利在线91 | 国产一区高清 | 久久96国产精品久久久 | 一级特黄性色生活片一区二区 | 亚洲自拍成人 | 男女福利社 | 91tv成人影院免费 | 精品国产一区二区三区四区不 | 欧洲女同互慰在线视频 | 女人张开腿让男人桶免费最新 | 欧美三级在线看 | 国产一区二区三区四区在线观看 | 欧美午夜不卡在线观看最新 | 欧美一级美片在线观看免费 | 2022国产精品自拍 | 亚洲免费视 | 国产精品1页 | 女人张开腿让男人桶免费最新 | 成年人网站免费 |