C#讀取XML文檔實例淺析
作者:飛翔的煙
C#讀取XML文檔的方法是什么呢?又如何進行實例實現(xiàn)呢?那么本文就向你介紹了C#讀取XML文檔的方法。
下面是一個C#讀取XML文檔的比較通用的方法,可以很方便地讀取XML文檔格式.XML文檔如下:
- ﹤?xml version="1.0" encoding="utf-8" ?﹥
- ﹤RolesRoot ID="0" RoleName="應(yīng)用權(quán)限配置"
- RoleValue="" RoleUrl="" RoleMark=""﹥
- ﹤Roles ID="CLGL" RoleName="車輛管理"
- RoleValue="" RoleUrl="" RoleMark=""﹥
- ﹤Role ID="CLGL_CLXX" RoleName="車輛基本信息"
- RoleValue="" RoleUrl="車輛管理/車輛基本信息" RoleMark=""﹥
- ﹤RoleChild ID="" RoleName="編輯" RoleValue=""
- RoleUrl="" RoleMark="clbjqx"﹥﹤/RoleChild﹥
- ﹤RoleChild ID="" RoleName="修改" RoleValue=""
- RoleUrl="" RoleMark="clxgqx"﹥﹤/RoleChild﹥
- ﹤RoleChild ID="" RoleName="刪除" RoleValue=""
- RoleUrl="" RoleMark="clscqx"﹥﹤/RoleChild﹥
- ﹤/Role﹥
- ﹤Role ID="CLGL_SJXX" RoleName="司機基本信息"
- RoleValue="" RoleUrl="車輛管理/司機基本信息" RoleMark=""﹥
- ﹤RoleChild ID="" RoleName="編輯" RoleValue=""
- RoleUrl="" RoleMark="sjbjqx"﹥﹤/RoleChild﹥
- ﹤RoleChild ID="" RoleName="修改" RoleValue=""
- RoleUrl="" RoleMark="sjxgqx"﹥﹤/RoleChild﹥
- ﹤RoleChild ID="" RoleName="刪除" RoleValue=""
- RoleUrl="" RoleMark="sjscqx"﹥﹤/RoleChild﹥
- ﹤/Role﹥
- ﹤/Roles﹥
- ﹤Roles ID="HYGL" RoleName="" RoleValue=""
- RoleUrl="" RoleMark=""﹥
- ﹤Role ID="" RoleName="" RoleValue=""
- RoleUrl="" RoleMark=""﹥﹤/Role﹥
- ﹤Role ID="" RoleName="" RoleValue=""
- RoleUrl="" RoleMark=""﹥﹤/Role﹥
- ﹤Role ID="" RoleName="" RoleValue=""
- RoleUrl="" RoleMark=""﹥﹤/Role﹥
- ﹤/Roles﹥
- ﹤/RolesRoot﹥
C#讀取XML文檔的代碼如下所示:
- /// ﹤summary﹥
- /// 獲取XML文檔中元素的值
- /// ﹤/summary﹥
- /// ﹤param name="parentNodePath"﹥父級節(jié)點位置,如RolesRoot/Roles﹤/param﹥
- /// ﹤param name="childNodeName"﹥子節(jié)點名稱,如要在Role節(jié)點下找相關(guān)元素值﹤/param﹥
- /// ﹤param name="matchElementName"﹥要進行匹配的元素名稱,如通過ID元素值來找匹配﹤/param﹥
- /// ﹤param name="id"﹥ID元素值﹤/param﹥
- /// ﹤param name="elementName"﹥需要獲取的元素名稱﹤/param﹥
- /// ﹤returns﹥﹤/returns﹥
- public static string GetXmlElementValue(string parentNodePath,
- string childNodeName,string matchElementName,
- string id, string elementName)
- {
- string outPut = string.Empty;
- try
- {
- string xmlpath = ConfigurationManager.
- AppSettings["RolesConfig"];
- XmlDocument doc = new XmlDocument();
- doc.Load(xmlpath);
- XmlNodeList nodes = doc.SelectSingleNode
- (parentNodePath).ChildNodes;
- foreach (XmlElement node in nodes)
- {
- if (node.Name == childNodeName)
- {
- if (node.Attributes[matchElementName].Value == id)
- {
- outPut = node.Attributes[elementName].Value;
- }
- }
- }
- }
- catch (Exception ex)
- {
- Response.Write(ex.Message);
- }
- return outPut;
- }
上面介紹了一般格式C#讀取XML文檔的方法,下面介紹讀取特殊XML文件屬性的方法,該XML文檔定義了ID屬性,如下:
- ﹤?xml version="1.0" encoding="utf-8" ?﹥
- ﹤!DOCTYPE RolesRoot [
- ﹤!ELEMENT Role ANY﹥
- ﹤!ELEMENT RoleName ANY﹥
- ﹤!ELEMENT RoleValue ANY﹥
- ﹤!ELEMENT RoleUrl ANY﹥
- ﹤!ELEMENT RoleMark ANY﹥
- ﹤!ATTLIST Role RoleID ID #REQUIRED﹥
- ﹤!ATTLIST RolesRoot RoleID IDREF #REQUIRED﹥
- ]﹥
- ﹤RolesRoot RoleID="0" RoleName="應(yīng)用權(quán)限配置"
- RoleValue="" RoleUrl="" RoleMark=""﹥
- ﹤Role RoleID="CLGL" RoleName="車輛管理" RoleValue=""
- RoleUrl="" RoleMark=""﹥
- ﹤Role RoleID="CLGL_CLXX" RoleName="車輛基本信息"
- RoleValue="" RoleUrl="車輛管理/車輛基本信息" RoleMark=""﹥
- ﹤Role RoleID="CLGL_CLXX_BJ" RoleName="編輯"
- RoleValue="" RoleUrl="" RoleMark="clbjqx"﹥﹤/Role﹥
- ﹤Role RoleID="CLGL_CLXX_XG" RoleName="修改"
- RoleValue="" RoleUrl="" RoleMark="clxgqx"﹥﹤/Role﹥
- ﹤Role RoleID="CLGL_CLXX_SC" RoleName="刪除"
- RoleValue="" RoleUrl="" RoleMark="clscqx"﹥﹤/Role﹥
- ﹤/Role﹥
- ﹤Role RoleID="CLGL_SJXX" RoleName="司機基本信息"
- RoleValue="" RoleUrl="車輛管理/司機基本信息" RoleMark=""﹥
- ﹤Role RoleID="" RoleName="編輯" RoleValue=""
- RoleUrl="" RoleMark="sjbjqx"﹥﹤/Role﹥
- ﹤Role RoleID="" RoleName="修改" RoleValue=""
- RoleUrl="" RoleMark="sjxgqx"﹥﹤/Role﹥
- ﹤Role RoleID="" RoleName="刪除" RoleValue=""
- RoleUrl="" RoleMark="sjscqx"﹥﹤/Role﹥
- ﹤/Role﹥
- ﹤/Role﹥
- ﹤/RolesRoot﹥
我們通過ID屬性進行C#讀取XML文檔,獲取元素的值.
- /// ﹤summary﹥
- /// 通過ID獲取元素值
- /// ﹤/summary﹥
- /// ﹤param name="id"﹥XML文檔中定義的***ID屬性﹤/param﹥
- /// ﹤param name="elementName"﹥對應(yīng)ID元素下要查找的元素名稱﹤/param﹥
- /// ﹤returns﹥﹤/returns﹥
- public static string GetXmlElementValueById(string id, string elementName)
- {
- string outPut = string.Empty;
- try
- {
- string xmlpath = ConfigurationManager.AppSettings["RolesConfig"];
- XmlDocument doc = new XmlDocument();
- doc.Load(xmlpath);
- XmlElement elem = doc.GetElementById(id);
- outPut = elem.Attributes[elementName].Value;
- }
- catch (Exception ex)
- {
- Response.Write(ex.Message);
- }
- return outPut;
- }
C#讀取XML文檔的相關(guān)內(nèi)容就向你介紹到這里,希望對你學(xué)習(xí)或了解C#讀取XML文檔有所幫助。
【編輯推薦】
責(zé)任編輯:仲衡
來源:
百度空間