首頁  >  文章  >  後端開發  >  Xml SelectNodes 與 XPath

Xml SelectNodes 與 XPath

黄舟
黄舟原創
2017-02-15 15:32:421649瀏覽


        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]") 的基礎上,增加了一個屬性值為111。注意語法中有引號;如果沒有引號,則表示是數字類型,對於數字類型可以使用大於號、小於號等,例如:SelectNodes("//item[@v>333]")。

SelectNodes("//item[1]")

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

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

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

SelectNodes("//item[position()

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

SelectNodes("//@name")

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

  取item 的name 屬性

。用 Value 屬性取得屬性集合的屬性值。 SelectNodes("/root/item")

        根節點 root 下的 item 子節點。 SelectNodes("/root//item")

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

通配符:

        可用* 表示任意節點名稱,例如SelectNodes("/channel/*/item");

        以node() 表示任意類型的節點;

        用text() 表示文字類型的節點,實際上也就是表示文字節點(元素節點下面是文字節點,文字節點下面才是文字)。

運算子:

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

以上是Xml  SelectNodes 與 XPath的內容,更多相關內容請關注PHP中文網(www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn