1.建立一個主控台應用程式 .
2.在程式檔案最上方繪入命名空間:
using System.IO;
3.在Main方法加入以下程式,將c:\temp目錄下所有附檔名為txt的檔案名稱印出:
LINQ to XML除了支援利用XSLT樣式表來轉換XML文件這種標準作法之外,還有另一種選擇:利用LINQ to XML的功能結構(Functional construction) 技術來進行轉換。例如你有一份XML文件如下:
利用功能結構(Functional construction)技術將其轉換為以下格式:
為了達到此目標所使用的步驟如下:
1. 建立一個Console程式。
2. 加入以下命名空間:
1 using System.Xml.Linq;
2 using System.Xml;
3 using System.Xml.Xsl;
3. 在Main方法之中加入以下程式:
1 XDocument doc =
2 new XDocument(
3 new XElement("Employees" ,
4 new XElement("Employee" ,
5 new XAttribute("id" , "1") ,
6 new XElement("Name" , "Vivid Hsu") ,
7 new XElement("Department" , "SD")) ,
8 new XElement("Employee" ,
9 new XAttribute("id" , "2") ,
10 new XElement("Name" , "Mary Wang") ,
11 new XElement("Department" , "SE"))
12 ));
13
14 Console.WriteLine("原始文件===========");
15 Console.WriteLine(doc.ToString());
16 doc.Save("EmployeesBefore.xml");
17 Console.WriteLine();
18 Console.WriteLine("新文件:============");
19 XDocument docNew = new XDocument(
20 new XElement("員工清單" ,
21 doc.Element("Employees")
22 .Elements("Employee")
23 .Select(b => new XElement("員工" ,
24 new XAttribute("員工編號" , (int)b.Attribute("id")) ,
25 new XAttribute("名稱" , (string)b.Element("Name")) ,
26 new XAttribute("部門" , (string)b.Element("Department"))
27 ))));
28
29 Console.WriteLine(docNew.ToString());
30 docNew.Save("Employees.xml");
程式說明分解如下:
1 using System.Xml.Linq;
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");
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 }
1. 在ASP.NET 3.5網站加入一個LINQ to SQL類別。
2. 從Server Explorer拖曳publishers到Pubs.dbml
7. Groupby選取「State」,OrderGroupBy選「key」,按「完成」:
8. 從ListView控制項智慧型標籤,選擇「設定ListView」,選一個配置與樣式,按「確定」。
完成以上步驟後,檢視產的HTML標籤。精靈設定LinqDataSource的ContextTypeName為「PubsDataContext」物件,設定TableName為「publishers」,其中包含欲分組的資料。設定GroupBy屬性為「state」,其中state代表分組依據的欄位,若欲分組的欄位有兩個以上,則以逗號區隔:
10. 完成!