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

您的位置:首頁技術文章
文章詳情頁

xpath簡介_動力節點Java學院整理

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

簡單說,xpath就是選擇XML文件中節點的方法。

所謂節點(node),就是XML文件的最小構成單位,一共分成7種。

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

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

一、xpath表達式的基本格式

xpath通過"路徑表達式"(Path Expression)來選擇節點。在形式上,"路徑表達式"與傳統的文件系統非常類似。

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

二、選擇節點的基本規則

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

三、選擇節點的實例

先看一個XML實例文檔。

<?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 元素的所有子節點。

[例2]

/bookstore :選取根節點bookstore,這是絕對路徑寫法。

[例3]

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

[例4]

//book :選擇所有 book 子元素,而不管它們在文檔中的位置。

[例5]

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

[例6]

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

四、xpath的謂語條件(Predicate)

所謂"謂語條件",就是對路徑表達式的附加條件。

所有的條件,都寫在方括號"[]"中,表示對節點進行進一步的篩選。

[例7]

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

[例8]

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

[例9]

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

[例10]

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

[例11]

//title[@lang] :表示選擇所有具有lang屬性的title節點。

[例12]

//title[@lang="eng"] :表示選擇所有lang屬性的值等于"eng"的title節點。

[例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結果集中,選擇title子元素。

[例16]

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

五、通配符

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

[例17]

//* :選擇文檔中的所有元素節點。

[例18]

/*/* :表示選擇所有第二層的元素節點。

[例19]

/bookstore/* :表示選擇bookstore的所有元素子節點。

[例20]

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

六、選擇多個路徑

用"|"選擇多個并列的路徑。

[例21]

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

標簽: XML/RSS
相關文章:
主站蜘蛛池模板: 亚洲成人综合视频 | 国产盗摄一区二区三区 | 成人欧美精品一区二区不卡 | 深夜福利成人 | 999久久久精品视频在线观看 | 九九精彩视频在线观看视频 | 香蕉成人国产精品免费看网站 | 在线看欧美日韩中文字幕 | 香蕉视频911 | 玖玖爱zh综合伊人久久 | 福利视频黄 | 亚洲永久中文字幕在线 | 久久99这里只有精品国产 | 亚洲视频一区二区在线观看 | 乱淫毛片 | 最新亚洲情黄在线网站无广告 | 色狠狠色综合吹潮 | 亚洲va中文字幕欧美不卡 | 大桥未久在线精品视频在线 | 久草综合在线视频 | 精品欧美日韩一区二区 | 女子张开腿让男人桶视频 | 亚洲视频在线观看 | 日本免费高清一区 | 日韩乱码视频 | 一级做a爰片毛片 | 亚洲精彩视频在线观看 | 国产精品久久一区二区三区 | 日韩成人午夜 | 一本到不卡 | 美女张开腿让男人桶下面 | 自拍在线| 日本高清色本在线www游戏 | 在线视频精品视频 | 久久午夜精品 | 精品国产91久久久久久久a | 97在线观看免费视频 | 一级a爰片久久毛片 | 欧美乱一级在线观看 | 国产一区二区三区在线观看精品 | 91中文字幕网 |