溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#讀取XML文檔的方法

發(fā)布時(shí)間:2021-06-16 11:43:59 來(lái)源:億速云 閱讀:160 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“C#讀取XML文檔的方法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“C#讀取XML文檔的方法”吧!

下面是一個(gè)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="司機(jī)基本信息" RoleValue="" RoleUrl="車輛管理/司機(jī)基本信息" 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"﹥父級(jí)節(jié)點(diǎn)位置,如RolesRoot/Roles﹤/param﹥   /// ﹤param name="childNodeName"﹥子節(jié)點(diǎn)名稱,如要在Role節(jié)點(diǎn)下找相關(guān)元素值﹤/param﹥   /// ﹤param name="matchElementName"﹥要進(jìn)行匹配的元素名稱,如通過(guò)ID元素值來(lái)找匹配﹤/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="司機(jī)基本信息" RoleValue="" RoleUrl="車輛管理/司機(jī)基本信息" 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﹥

我們通過(guò)ID屬性進(jìn)行C#讀取XML文檔,獲取元素的值.

/// ﹤summary﹥  /// 通過(guò)ID獲取元素值  /// ﹤/summary﹥  /// ﹤param name="id"﹥XML文檔中定義的***ID屬性﹤/param﹥  /// ﹤param name="elementName"﹥對(duì)應(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;  }

到此,相信大家對(duì)“C#讀取XML文檔的方法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI