首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# XML 文件操作全攻略:XmlDocument、XPath、DataSet、Repeater 綁定與 URL 載入

     編輯:關於C#

範例 XML (people.xml)




  Tom StaffordCFO
  Jane GoodwillCEO
  Tim DalyCTOCTO0
  John GraverCSO

技巧一:XPath 查詢單一節點


XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("people.xml"));
string title2 = doc.SelectSingleNode("//person[name='Tim Daly']/title2").InnerText; // "CTO0"
  • //:任意深度後代。
  • SelectSingleNode 回單一節點,SelectNodes 回節點集合。

技巧二:XmlNodeList 繫結 ListBox


XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("people.xml"));
XmlNodeList names = doc.GetElementsByTagName("name");
ArrayList list = new ArrayList();
foreach (XmlNode n in names) list.Add(n.InnerXml);
ListBox1.DataSource = list; ListBox1.DataBind();

技巧三:DataSet ReadXml 繫結 Repeater


DataSet ds = new DataSet();
using (FileStream fs = new FileStream(Server.MapPath("people.xml"), FileMode.Open, FileAccess.Read))
    ds.ReadXml(fs);

Repeater1.DataSource = ds.Tables[0].DefaultView;
Repeater1.DataBind();
ASPX 範本:


  
    姓名: <%# DataBinder.Eval(Container.DataItem, "name") %>
職稱: <%# DataBinder.Eval(Container.DataItem, "title") %>

技巧四:Repeater 編輯後寫回 XML


DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("people.xml"));

// 新增一筆
DataRow nr = ds.Tables[0].NewRow();
nr["name"] = "New User"; nr["title"] = "Dev"; nr["title2"] = "Dev2";
ds.Tables[0].Rows.Add(nr);

// 寫回
using (FileStream fs = new FileStream(Server.MapPath("people.xml"), FileMode.Create, FileAccess.Write))
    ds.WriteXml(fs, XmlWriteMode.WriteSchema);

技巧五:直接載入遠端 URL XML


XmlDocument doc = new XmlDocument();
doc.Load("https://www.csdn.net/expert/topic/1094/1094085.xml?temp=.9642145");
doc.Save(Console.Out); // 輸出至主控台
  • XmlDocument.Load 直接支援 HTTP/HTTPS URL。
  • 適用於即時資料饋給(股票、新聞 RSS 等)。

類別選擇指引

類別適用場景特性
XmlDocument小型文件、需 DOM 修改、XPath 查詢記憶體載入整樹、支援讀寫
XmlReader/XmlWriter大型文件、單向串流、高效能前向唯讀/寫入、低記憶體
XPathDocument唯讀 XPath 查詢優化 XPath、不可修改
DataSet關聯式視圖、資料繫結、離線編輯表格模型、支援 WriteXml/ReadXml
XDocument (LINQ to XML)現代專案、LINQ 查詢、函式式建構.NET 3.5+、語法簡潔
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved