C#读取XML文档实例浅析

开发 后端
C#读取XML文档的方法是什么呢?又如何进行实例实现呢?那么本文就向你介绍了C#读取XML文档的方法。

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

﹤?xml version="1.0" encoding="utf-8" ?﹥  
﹤RolesRoot ID="0"  RoleName="应用权限配置" 
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﹥ 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.

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

/// ﹤summary﹥  
 /// 获取XML文档中元素的值  
 /// ﹤/summary﹥  
 /// ﹤param name="parentNodePath"﹥父级节点位置,如RolesRoot/Roles﹤/param﹥  
 /// ﹤param name="childNodeName"﹥子节点名称,如要在Role节点下找相关元素值﹤/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;  
 } 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.

上面介绍了一般格式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="应用权限配置" 
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﹥ 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.

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

/// ﹤summary﹥  
/// 通过ID获取元素值  
/// ﹤/summary﹥  
/// ﹤param name="id"﹥XML文档中定义的***ID属性﹤/param﹥  
/// ﹤param name="elementName"﹥对应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;  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

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-17 17:49:20

C# 枚举

2009-08-12 16:38:35

C#读取XML节点

2009-08-27 17:59:56

C#接口定义

2009-08-18 13:49:21

C# 操作Excel

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-18 16:04:12

C# 操作Excel

2009-08-27 17:11:44

C# Fluent I
点赞
收藏

51CTO技术栈公众号