C#读取XML文档实例浅析

下面是一个C#读取XML文档的比较通用的方法,可以很方便地读取XML文档格式.XML文档如下:

目前创新互联已为上千多家的企业提供了网站建设、域名、雅安服务器托管成都网站托管、企业网站设计、拉萨网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

 
 
 
  1. ﹤?xml version="1.0" encoding="utf-8" ?﹥
  2. ﹤RolesRoot ID="0"  RoleName="应用权限配置"
  3. RoleValue="" RoleUrl="" RoleMark=""﹥
  4.   ﹤Roles ID="CLGL" RoleName="车辆管理"
  5. RoleValue="" RoleUrl="" RoleMark=""﹥
  6.     ﹤Role ID="CLGL_CLXX" RoleName="车辆基本信息"
  7.  RoleValue="" RoleUrl="车辆管理/车辆基本信息" RoleMark=""﹥
  8.       ﹤RoleChild ID="" RoleName="编辑" RoleValue=""
  9.  RoleUrl="" RoleMark="clbjqx"﹥﹤/RoleChild﹥
  10.       ﹤RoleChild ID="" RoleName="修改" RoleValue=""
  11.  RoleUrl="" RoleMark="clxgqx"﹥﹤/RoleChild﹥
  12.       ﹤RoleChild ID="" RoleName="删除" RoleValue=""
  13.  RoleUrl="" RoleMark="clscqx"﹥﹤/RoleChild﹥
  14.     ﹤/Role﹥
  15.     ﹤Role ID="CLGL_SJXX" RoleName="司机基本信息"
  16.  RoleValue="" RoleUrl="车辆管理/司机基本信息" RoleMark=""﹥
  17.       ﹤RoleChild ID="" RoleName="编辑" RoleValue=""
  18. RoleUrl="" RoleMark="sjbjqx"﹥﹤/RoleChild﹥
  19.       ﹤RoleChild ID="" RoleName="修改" RoleValue=""
  20. RoleUrl="" RoleMark="sjxgqx"﹥﹤/RoleChild﹥
  21.       ﹤RoleChild ID="" RoleName="删除" RoleValue=""
  22. RoleUrl="" RoleMark="sjscqx"﹥﹤/RoleChild﹥
  23.     ﹤/Role﹥
  24.   ﹤/Roles﹥
  25.   ﹤Roles ID="HYGL" RoleName="" RoleValue=""
  26. RoleUrl="" RoleMark=""﹥
  27.     ﹤Role ID="" RoleName="" RoleValue=""
  28. RoleUrl="" RoleMark=""﹥﹤/Role﹥
  29.     ﹤Role ID="" RoleName="" RoleValue=""
  30.  RoleUrl="" RoleMark=""﹥﹤/Role﹥
  31.     ﹤Role ID="" RoleName="" RoleValue=""
  32. RoleUrl="" RoleMark=""﹥﹤/Role﹥
  33.   ﹤/Roles﹥
  34. ﹤/RolesRoot﹥

C#读取XML文档的代码如下所示:

 
 
 
  1. /// ﹤summary﹥
  2.  /// 获取XML文档中元素的值
  3.  /// ﹤/summary﹥
  4.  /// ﹤param name="parentNodePath"﹥父级节点位置,如RolesRoot/Roles﹤/param﹥
  5.  /// ﹤param name="childNodeName"﹥子节点名称,如要在Role节点下找相关元素值﹤/param﹥
  6.  /// ﹤param name="matchElementName"﹥要进行匹配的元素名称,如通过ID元素值来找匹配﹤/param﹥
  7.  /// ﹤param name="id"﹥ID元素值﹤/param﹥
  8.  /// ﹤param name="elementName"﹥需要获取的元素名称﹤/param﹥
  9.  /// ﹤returns﹥﹤/returns﹥
  10.  public static string GetXmlElementValue(string parentNodePath,
  11. string childNodeName,string matchElementName,
  12. string id, string elementName)
  13.  {
  14.      string outPut = string.Empty;
  15.      try
  16.      {
  17.          string xmlpath = ConfigurationManager.
  18. AppSettings["RolesConfig"];
  19.          XmlDocument doc = new XmlDocument();
  20.          doc.Load(xmlpath);
  21.          XmlNodeList nodes = doc.SelectSingleNode
  22. (parentNodePath).ChildNodes;
  23.          foreach (XmlElement node in nodes)
  24.          {
  25.              if (node.Name == childNodeName)
  26.              {
  27.                  if (node.Attributes[matchElementName].Value == id)
  28.                  {
  29.                      outPut = node.Attributes[elementName].Value;
  30.                  }
  31.              }
  32.          }
  33.      }
  34.      catch (Exception ex)
  35.      {
  36.          Response.Write(ex.Message);
  37.      }
  38.      return outPut;
  39.  }

上面介绍了一般格式C#读取XML文档的方法,下面介绍读取特殊XML文件属性的方法,该XML文档定义了ID属性,如下:

 
 
 
  1. ﹤?xml version="1.0" encoding="utf-8" ?﹥
  2. ﹤!DOCTYPE RolesRoot [
  3.   ﹤!ELEMENT Role ANY﹥
  4.   ﹤!ELEMENT RoleName ANY﹥
  5.   ﹤!ELEMENT RoleValue ANY﹥
  6.   ﹤!ELEMENT RoleUrl ANY﹥
  7.   ﹤!ELEMENT RoleMark ANY﹥
  8.   ﹤!ATTLIST Role RoleID ID #REQUIRED﹥
  9.   ﹤!ATTLIST RolesRoot RoleID IDREF #REQUIRED﹥
  10. ]﹥
  11. ﹤RolesRoot RoleID="0"  RoleName="应用权限配置"
  12. RoleValue="" RoleUrl="" RoleMark=""﹥
  13.   ﹤Role RoleID="CLGL" RoleName="车辆管理" RoleValue=""
  14. RoleUrl="" RoleMark=""﹥
  15.     ﹤Role RoleID="CLGL_CLXX" RoleName="车辆基本信息"
  16. RoleValue="" RoleUrl="车辆管理/车辆基本信息" RoleMark=""﹥
  17.       ﹤Role RoleID="CLGL_CLXX_BJ" RoleName="编辑"
  18. RoleValue="" RoleUrl="" RoleMark="clbjqx"﹥﹤/Role﹥
  19.       ﹤Role RoleID="CLGL_CLXX_XG" RoleName="修改"
  20. RoleValue="" RoleUrl="" RoleMark="clxgqx"﹥﹤/Role﹥
  21.       ﹤Role RoleID="CLGL_CLXX_SC" RoleName="删除"
  22. RoleValue="" RoleUrl="" RoleMark="clscqx"﹥﹤/Role﹥
  23.     ﹤/Role﹥
  24.     ﹤Role RoleID="CLGL_SJXX" RoleName="司机基本信息"
  25. RoleValue="" RoleUrl="车辆管理/司机基本信息" RoleMark=""﹥
  26.       ﹤Role RoleID="" RoleName="编辑" RoleValue=""
  27. RoleUrl="" RoleMark="sjbjqx"﹥﹤/Role﹥
  28.       ﹤Role RoleID="" RoleName="修改" RoleValue=""
  29. RoleUrl="" RoleMark="sjxgqx"﹥﹤/Role﹥
  30.       ﹤Role RoleID="" RoleName="删除" RoleValue=""
  31. RoleUrl="" RoleMark="sjscqx"﹥﹤/Role﹥
  32.     ﹤/Role﹥
  33.   ﹤/Role﹥
  34. ﹤/RolesRoot﹥

我们通过ID属性进行C#读取XML文档,获取元素的值.

 
 
 
  1. /// ﹤summary﹥
  2. /// 通过ID获取元素值
  3. /// ﹤/summary﹥
  4. /// ﹤param name="id"﹥XML文档中定义的***ID属性﹤/param﹥
  5. /// ﹤param name="elementName"﹥对应ID元素下要查找的元素名称﹤/param﹥
  6. /// ﹤returns﹥﹤/returns﹥
  7. public static string GetXmlElementValueById(string id, string elementName)
  8. {
  9.     string outPut = string.Empty;
  10.     try
  11.     {
  12.         string xmlpath = ConfigurationManager.AppSettings["RolesConfig"];
  13.         XmlDocument doc = new XmlDocument();
  14.         doc.Load(xmlpath);
  15.         XmlElement elem = doc.GetElementById(id);
  16.         outPut = elem.Attributes[elementName].Value;
  17.     }
  18.     catch (Exception ex)
  19.     {
  20.         Response.Write(ex.Message);
  21.     }
  22.     return outPut;
  23. }

C#读取XML文档的相关内容就向你介绍到这里,希望对你学习或了解C#读取XML文档有所帮助。

当前题目:C#读取XML文档实例浅析
当前链接:http://www.shufengxianlan.com/qtweb/news22/533872.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联