程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> XDocument讀取xml的所有元素以及XPath語法

XDocument讀取xml的所有元素以及XPath語法

編輯:C#入門知識


  
  
    Everyday Italian
    Giada De Laurentiis
    2005
    30.00
  

  
    Harry Potter
    J K. Rowling
    2005
    29.99
  

  
    XQuery Kick Start
    James McGovern
    Per Bothner
    Kurt Cagle
    James Linn
    Vaidyanathan Nagarajan
    2003
    49.99
  
  
  
    Learning XML
    Erik T. Ray
    2003
    39.95
  
  

以上是BookStore.xml文件

接著開始處理

            XDocument xdoc = XDocument.Load();
            XElement xroot = xdoc.Root;
            Console.WriteLine(xroot.Name);
            IEnumerable<XElement> elements = xroot.Elements();
             (XElement item           Console.WriteLine(item.Name);
                DiGuiNode(item); 
            }            
           (xroot!= ( item 
                    Console.WriteLine(item.Value);

運行結果:

2.XPath語法:

nodename節點。 / . 選取屬性。

2.1

            XDocument xdoc = XDocument.Load();
            XElement xroot = xdoc.Root;
            Console.WriteLine(xroot.Name);
            IEnumerable<XElement> elements = xroot.XPathSelectElements();
             (XElement item 

運行結果:

2.2 假如路徑起始於正斜槓( / ),則此路徑始終代表到某元素的絕對路徑!

            XDocument xdoc = XDocument.Load();
            XElement xroot = xdoc.Root;
            IEnumerable<XElement> elements = xroot.XPathSelectElements();
             (XElement item 

運行結果:

2.3  // 從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置。

            XDocument xdoc = XDocument.Load();
            XElement xroot = xdoc.Root;
            Console.WriteLine(xroot.Name);
            IEnumerable<XElement> elements = xroot.XPathSelectElements( (XElement item 

運行結果:

2.4  .表示選取當前節點。

            XDocument xdoc = XDocument.Load();
            XElement xroot = xdoc.Root;
            Console.WriteLine(xroot.Name);
<XElement> elements = xroot.XPathSelectElements();
             (XElement item 

運行結果:

2.5  ..表示選取當前節點的父節點。

            XDocument xdoc = XDocument.Load();
            XElement xroot = xdoc.Root;
            Console.WriteLine(xroot.Name);
            IEnumerable<XElement> elements = xroot.XPathSelectElements();
             (XElement item = item.XPathSelectElement();

運行結果:

2.6 @表示選取帶此屬性的元素

            XDocument xdoc = XDocument.Load();
            XElement xroot = xdoc.Root;
            Console.WriteLine(xroot.Name);
            IEnumerable<XElement> elements = xroot.XPathSelectElements();
             (XElement item 

運行結果:

謂語(Predicates)

謂語用來查找某個特定的節點或者包含某個指定的值的節點。

謂語被嵌在方括號中。

實例

在下面的表格中,我們列出了帶有謂語的一些路徑表達式,以及表達式的結果:

路徑表達式結果 /bookstore/book[1] 選取屬於 bookstore 子元素的第一個 book 元素。 /bookstore/book[last()] 選取屬於 bookstore 子元素的最後一個 book 元素。 /bookstore/book[last()-1] 選取屬於 bookstore 子元素的倒數第二個 book 元素。 /bookstore/book[position()<3] 選取最前面的兩個屬於 bookstore 元素的子元素的 book 元素。 //title[@lang] 選取所有擁有名為 lang 的屬性的 title 元素。 //title[@lang='eng'] 選取所有 title 元素,且這些元素擁有值為 eng 的 lang 屬性。 /bookstore/book[price>35.00] 選取 bookstore 元素的所有 book 元素,且其中的 price 元素的值須大於 35.00。 /bookstore/book[price>35.00]/title 選取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值須大於 35.00。

選取未知節點

XPath 通配符可用來選取未知的 XML 元素。

通配符描述 * 匹配任何元素節點。 @* 匹配任何屬性節點。 node() 匹配任何類型的節點。

實例

在下面的表格中,我們列出了一些路徑表達式,以及這些表達式的結果:

路徑表達式結果 /bookstore/* 選取 bookstore 元素的所有子元素。 //* 選取文檔中的所有元素。 //title[@*] 選取所有帶有屬性的 title 元素。

選取若干路徑

通過在路徑表達式中使用“|”運算符,您可以選取若干個路徑。

實例

在下面的表格中,我們列出了一些路徑表達式,以及這些表達式的結果:

路徑表達式結果 //book/title | //book/price 選取 book 元素的所有 title 和 price 元素。 //title | //price 選取文檔中的所有 title 和 price 元素。 /bookstore/book/title | //price 選取屬於 bookstore 元素的 book 元素的所有 title 元素,以及文檔中所有的 price 元素。

以上表格信息摘自http://www.w3school.com.cn/xpath/xpath_syntax.asp
      

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved