狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

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

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

在開發(fā)過程中,我們有時會需要保存到本地一些結(jié)構(gòu)化數(shù)據(jù)或者配置信息,這時就可以選擇用xml文件。當(dāng)然xml的用途也不僅僅是這些。

這一篇來談一談關(guān)于讀取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讀取

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

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

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


第二種方式:XmlDocument

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

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

第三種方式:JSON.NET

使用JSON.NET可以將xml轉(zhuǎn)換成json去操作

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

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

//需導(dǎo)入命名空間 using Newtonsoft.Json;using Newtonsoft.Json.Linq;
//XmlDocument讀取xml文件 xmlDoc = new XmlDocument(); xmlDoc.Load(xmlPaths); //轉(zhuǎn)換為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文件個人推薦使用第一種,復(fù)雜點的使用第二種,具體可以根據(jù)需求選擇。


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