欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 讀取XML文件的幾種方式

admin
2023年2月27日 10:21 本文熱度 609

在開發過程中,我們有時會需要保存到本地一些結構化數據或者配置信息,這時就可以選擇用xml文件。當然xml的用途也不僅僅是這些。

這一篇來談一談關于讀取xml文件的幾種方式;

我們有以下兩個文件,一個是帶有id屬性的,一個是不帶屬性的簡單xml文件。

<?xml version="1.0" encoding="utf-8" ?><studentList>  <student>    <name>張三</name>    <sex></sex>    <old>20</old>  </student>  <student>    <name>李四</name>    <sex></sex>    <old>21</old>  </student></studentList>
<?xml version="1.0" encoding="utf-8" ?><studentList>  <student>    <name id="1">張三</name>    <sex id="11"></sex>    <old id="111">20</old>  </student>  <student>    <name id="2">李四</name>    <sex id="22"></sex>    <old id="222">21</old>  </student></studentList>

第一種方式:DataSet讀取

這種方式最簡單,而且取數據也很方便,但是對于比較復雜的xml,操作起來也很麻煩,每一個帶屬性的節點都會生成一個table,可以自行監視下DataSet的結構情況,然后做不同的處理

 //xml文件路徑 string xmlPath = Application.StartupPath + "\\Student.xml";//不帶屬性 string xmlPaths = Application.StartupPath + "\\Students.xml";//帶屬性 //dataset讀取簡單xml文件 DataSet ds = new DataSet(); ds.ReadXml(xmlPath);//讀取第一條數據的name節點 string name = ds.Tables[0].Rows[0]["name"].ToString(); //輸出:張三 Console.WriteLine(name);

//dataset讀取帶屬性的xml文件 ds = new DataSet(); ds.ReadXml(xmlPaths); //讀取的節點名稱 string nodeName = "name"; name = ds.Tables[nodeName].Rows[0][nodeName+"_Text"].ToString(); //讀取節點的id屬性 string id = ds.Tables[nodeName].Rows[0]["id"].ToString(); //輸出:id:1,name:張三 Console.WriteLine("id:{0},name:{1}",id,name);


第二種方式:XmlDocument

這種方式就很強大并且靈活了,根據節點順序逐步獲取就可以

//需導入命名空間 using System.Xml;
//XmlDocument讀取xml文件 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlPaths); //獲取xml根節點 XmlNode xmlRoot = xmlDoc.DocumentElement; //根據節點順序逐步讀取 //讀取第一個name節點 name = xmlRoot.selectSingleNode("student/name").InnerText; //讀取節點的id屬性 id = xmlRoot.selectSingleNode("student/name").Attributes["id"].InnerText; //輸出:id:1,name:張三 Console.WriteLine("id:{0},name:{1}", id, name);
//讀取所有的name節點 foreach (XmlNode node in xmlRoot.selectNodes("student/name")) { //循環輸出 Console.WriteLine("id:{0},name:{1}", node.Attributes["id"].InnerText, node.InnerText); }

第三種方式:JSON.NET

使用JSON.NET可以將xml轉換成json去操作

如果是對xml文件進行操作的話,個人不太建議使用這種方式;

需要引入Newtonsoft.Json.dll,使用時請注意版本,低版本可能不支持

//需導入命名空間 using Newtonsoft.Json;using Newtonsoft.Json.Linq;
//XmlDocument讀取xml文件 xmlDoc = new XmlDocument(); xmlDoc.Load(xmlPaths); //轉換為json string json = JsonConvert.SerializeXmlNode(xmlDoc); //解析json JObject jobj = JObject.Parse(json); JArray jarr = JArray.Parse(jobj["studentList"]["student"].ToString()); //輸出:id:1,name:張三 Console.WriteLine("id:{0},name:{1}", jarr[0]["name"]["#text"], jarr[0]["name"]["@id"]);

簡單的xml文件個人推薦使用第一種,復雜點的使用第二種,具體可以根據需求選擇。


該文章在 2023/2/27 10:21:58 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved