XML的SelectNodes及XPath的用法

2022-02-10 08:38:33 字數 1488 閱讀 8601

xpath 是 xml 的內容,這裡 selectnodes 是 c# 中 xmldocument 或 xmlnode 的乙個方法。selectnodes 使用 xpath 來選取節點。

重要語法:

selectnodes("item")

從當前節點的兒子節點中選擇名稱為 item 的節點。

selectnodes("/item")

從根節點的兒子節點中選擇名稱為 item 的節點。

selectnodes("//item")

從任意位置的節點上選擇名稱為 item 的節點。要重點突出這個任意位置,它不受當前節點的影響,也就是說假如當前節點是在第 100 層(有點誇張),也可以選擇第一層的名稱為 item 的節點。

selectnodes(".")

選擇當前節點。

selectnodes("..")

選擇當前節點的父節點。

selectnodes("//item[@name]")

在 selectnodes("//item") 的基礎上,增加了乙個限制,就是要求擁有 name 屬性。

selectnodes("//item[@name='111']")

在 selectnodes("//item[@name]") 的基礎上,增加了乙個限制,就是要求 name 屬性值為 111。注意語法中有引號;如果沒有引號,則表示是數字型別,對於數字型別可以使用大於號、小於號等,比如:selectnodes("//item[@v>333]")。

selectnodes("//item[1]")

選擇第乙個 item,注意是第乙個,不是第二個。

還有這裡是指親兄弟間的第乙個 item,也就是說:父級若有三個 item,則選擇第乙個;若父級第二個 item 的有兩個名稱同樣為 item 的兒子,則第乙個兒子會被選擇出來;若父級第三個 item 的也有兩個名稱同樣為 item 的兒子,則第乙個兒子也會被選擇出來……

selectnodes("//item[last()-1]")

倒數第二個節點,同樣是指親兄弟間的倒數第二個。

selectnodes("//item[position()<=2]")

位置為第一和第二的節點(第乙個節點的 position() 為 1),同樣是指親兄弟間的位置。

selectnodes("//@name")

selectnodes("/root/item/@name") 取 item 的 name 屬性

選擇 name 屬性,注意這下選擇的是屬性,而不是節點了。用 value 屬性獲取屬性集合的屬性值。

selectnodes("/root/item")

根節點 root 下的 item 兒子節點。

selectnodes("/root//item")

根節點 root 下的不管是兒子、孫子、重孫子……,只要是名稱為 item 的統統選取出來。

萬用字元運算子

| 表示或。selectnodes("//item|//channel"),選擇 item 或 channel 節點。

Xml讓人鬱悶的SelectNodes方法

selectnodes xpath,namespace 方法中 無論是xmldoc.selectnodes xpath,namespace 假設xmldoc為根節點,整個文件下的查詢 還是xmldoc.childnodes i selectnodes xpath,namespace 節點下的查詢 兩...

dom4j中selectNodes無法獲得節點

原文 沒想到搞個dom4j會出這麼多怪錯。最近在研究xbrl gl的有關內容,在專案中要求吧xbrl gl匯入到11179註冊庫中,根據11179建立資料庫,然後從xbrl gl分類標準中匯入資料到資料庫。在匯入過程中需要用到dom4j來讀取xbrl gl檔案,用selectnodes來選取制定的元...

Dom4j中SelectNodes使用方法

xpath 是 xml 的內容,這裡 selectnodes 是 dom4j 中 xmldocument 或 xmlnode 的乙個方法。selectnodes 使用 xpath 來選取節點。重要語法 selectnodes item 從當前節點的兒子節點中選擇名稱為 item 的節點。select...