2008年4月6日 星期日

Step-By-Step教學(5):使用LINQ to XML操作XML

這個教學將建立一個主控台應用程式,利用LINQ to XML技術產生一份XML文件,將之儲存到檔案之中,再將檔案中的XML文件載入記憶體,透過LINQ to XML進行查詢。LINQ to XML類別架構圖:

1. 建立一個主控台應用程式。
2. 在程式最上方匯入以下命名空間:

    1 using System.Xml.Linq;

3. 在Main方法中,加入以下程式,建立XElement:

   1    XDocument doc = new XDocument(
   2       new XElement("books" ,
   3         new XElement("book" , new XAttribute("publisher" , "DP") ,
   4           new XElement("id" , "1") ,
   5           new XElement("title" , "ADO.NET 3.5 精研講座")) ,
   6         new XElement("book" , new XAttribute("publisher" , "DP") ,
   7           new XElement("id" , "2") ,
   8           new XElement("title" , "ADO.NET 2.0 精研講座"))
   9     ));
   10       doc.Save("adobooks.xml");

LINQ to XML提供一種新的功能結構(Functional construction) 技術,能利用建構函式 (Constructor) 透過一行程式碼就可以初始化XML樹狀結構中多個XML Element的值。此程式範例,利用XDocument物件建立一份XML文件,然後利用XElement 的建構函式,建立一個名為books的XML Element;在books Element的建構函式中,建立publisher屬性,與id、title兩個Element。

接著利用XDocument的Save方法儲存XML檔案。XDocument提供一個Save方法,可以將產生的XML輸出成一個XML檔案、或輸出至一個XmlWriter、TextWriter,此範例,將產生的XML儲存成一個XML檔案。


4. 載入XML檔案到XDocument。透過 XDocument類別的Load方法將其載入XDocument物件。接著利用XContainer的Elements方法,取得books下的所有book Element,然後再透過foreach語法將book下的id、title與publisher資料讀取出來。

    1 XDocument docNew = XDocument.Load("adobooks.xml");
    2       Console.WriteLine(docNew.ToString());
    3       IEnumerable<XElement> eles = 
    4         doc.Element("books").Elements("book");
    5       foreach (XElement el in eles) {
    6         Console.WriteLine(el.Element("id").Value 
    7           + " , " + el.Element("title").Value 
    8           + " , " + el.Attribute("publisher").Value);
    9       }

5. 執行的結果:

3 則留言:

匿名 提到...

你好!我叫ki ki!我想請教你一些問題!你是否懂得用xyvision?因為我想學習點運用啊!我找了很久也找不到教學!你可以回覆我嗎?請給我電郵:kikigigi828.com.hk!!!thx

米米貓學開發 提到...

不好意思,我對xyvision沒有研究。

小新 提到...

有用~
感謝分享!

總瀏覽量