C#读取XML文档实例浅析

开发 后端
C#读取XML文档的方法是什么呢?又如何进行实例实现呢?那么本文就向你介绍了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.  
  22.          XmlNodeList nodes = doc.SelectSingleNode
  23. (parentNodePath).ChildNodes;  
  24.          foreach (XmlElement node in nodes)  
  25.          {  
  26.              if (node.Name == childNodeName)  
  27.              {  
  28.                  if (node.Attributes[matchElementName].Value == id)  
  29.                  {  
  30.                      outPut = node.Attributes[elementName].Value;  
  31.                  }  
  32.              }  
  33.          }  
  34.      }  
  35.      catch (Exception ex)  
  36.      {  
  37.          Response.Write(ex.Message);  
  38.      }  
  39.      return outPut;  
  40.  } 

上面介绍了一般格式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.  
  12. ﹤RolesRoot RoleID="0"  RoleName="应用权限配置" 
  13. RoleValue="" RoleUrl="" RoleMark=""﹥  
  14.   ﹤Role RoleID="CLGL" RoleName="车辆管理" RoleValue="" 
  15. RoleUrl="" RoleMark=""﹥  
  16.     ﹤Role RoleID="CLGL_CLXX" RoleName="车辆基本信息" 
  17. RoleValue="" RoleUrl="车辆管理/车辆基本信息" RoleMark=""﹥  
  18.       ﹤Role RoleID="CLGL_CLXX_BJ" RoleName="编辑" 
  19. RoleValue="" RoleUrl="" RoleMark="clbjqx"﹥﹤/Role﹥  
  20.       ﹤Role RoleID="CLGL_CLXX_XG" RoleName="修改" 
  21. RoleValue="" RoleUrl="" RoleMark="clxgqx"﹥﹤/Role﹥  
  22.       ﹤Role RoleID="CLGL_CLXX_SC" RoleName="删除" 
  23. RoleValue="" RoleUrl="" RoleMark="clscqx"﹥﹤/Role﹥  
  24.     ﹤/Role﹥  
  25.     ﹤Role RoleID="CLGL_SJXX" RoleName="司机基本信息" 
  26. RoleValue="" RoleUrl="车辆管理/司机基本信息" RoleMark=""﹥  
  27.       ﹤Role RoleID="" RoleName="编辑" RoleValue="" 
  28. RoleUrl="" RoleMark="sjbjqx"﹥﹤/Role﹥  
  29.       ﹤Role RoleID="" RoleName="修改" RoleValue="" 
  30. RoleUrl="" RoleMark="sjxgqx"﹥﹤/Role﹥  
  31.       ﹤Role RoleID="" RoleName="删除" RoleValue="" 
  32. RoleUrl="" RoleMark="sjscqx"﹥﹤/Role﹥  
  33.     ﹤/Role﹥  
  34.   ﹤/Role﹥  
  35. ﹤/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.  
  16.         XmlElement elem = doc.GetElementById(id);  
  17.         outPut = elem.Attributes[elementName].Value;  
  18.     }  
  19.     catch (Exception ex)  
  20.     {  
  21.         Response.Write(ex.Message);  
  22.     }  
  23.     return outPut;  

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

【编辑推荐】

  1. C#算法一道面试题的程序实现
  2. C#运算符种类简析
  3. C#位运算符种类及使用浅析
  4. C#运算符重载“>”的操作浅析
  5. C#赋值运算符之复合赋值运算符
责任编辑:仲衡 来源: 百度空间
相关推荐

2009-08-28 17:34:14

读取word文档

2009-08-12 16:26:30

C#读取XML文档

2009-08-12 16:46:22

C#读取XML文档

2009-09-09 13:57:28

C# XML解析

2009-08-18 16:42:49

C# 操作XML

2009-09-01 13:13:28

C#打开Word文档

2009-09-09 15:54:48

C# XML序列化

2009-08-18 16:49:05

C# 操作XML

2009-08-27 13:30:11

C# interfac

2009-08-19 16:42:41

C#如何使用XML

2009-08-12 16:38:35

C#读取XML节点

2009-08-17 17:49:20

C# 枚举

2009-08-18 13:49:21

C# 操作Excel

2009-08-27 17:59:56

C#接口定义

2009-08-18 16:30:41

C# 操作XML

2009-09-04 14:14:55

C#文档

2009-08-18 17:08:50

C#编写XML文档

2009-08-24 17:24:28

C#创建XML文档

2009-08-27 17:11:44

C# Fluent I

2009-08-18 16:04:12

C# 操作Excel
点赞
收藏

51CTO技术栈公众号