`
izuoyan
  • 浏览: 9221146 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C#读取XML文档

阅读更多

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

<?xmlversion="1.0"encoding="utf-8"?>
<RolesRootID="0"RoleName="应用权限配置"RoleValue=""RoleUrl=""RoleMark="">
<RolesID="CLGL"RoleName="车辆管理"RoleValue=""RoleUrl=""RoleMark="">
<RoleID="CLGL_CLXX"RoleName="车辆基本信息"RoleValue=""RoleUrl="车辆管理/车辆基本信息"RoleMark="">
<RoleChildID=""RoleName="编辑"RoleValue=""RoleUrl=""RoleMark="clbjqx"></RoleChild>
<RoleChildID=""RoleName="修改"RoleValue=""RoleUrl=""RoleMark="clxgqx"></RoleChild>
<RoleChildID=""RoleName="删除"RoleValue=""RoleUrl=""RoleMark="clscqx"></RoleChild>
</Role>
<RoleID="CLGL_SJXX"RoleName="司机基本信息"RoleValue=""RoleUrl="车辆管理/司机基本信息"RoleMark="">
<RoleChildID=""RoleName="编辑"RoleValue=""RoleUrl=""RoleMark="sjbjqx"></RoleChild>
<RoleChildID=""RoleName="修改"RoleValue=""RoleUrl=""RoleMark="sjxgqx"></RoleChild>
<RoleChildID=""RoleName="删除"RoleValue=""RoleUrl=""RoleMark="sjscqx"></RoleChild>
</Role>
</Roles>
<RolesID="HYGL"RoleName=""RoleValue=""RoleUrl=""RoleMark="">
<RoleID=""RoleName=""RoleValue=""RoleUrl=""RoleMark=""></Role>
<RoleID=""RoleName=""RoleValue=""RoleUrl=""RoleMark=""></Role>
<RoleID=""RoleName=""RoleValue=""RoleUrl=""RoleMark=""></Role>
</Roles>
</RolesRoot>

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

/// <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;
}

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

<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPERolesRoot[
<!ELEMENTRoleANY
>
<!ELEMENTRoleNameANY>
<!ELEMENTRoleValueANY>
<!ELEMENTRoleUrlANY>
<!ELEMENTRoleMarkANY>
<!ATTLISTRoleRoleIDID#REQUIRED>
<!ATTLISTRolesRootRoleIDIDREF#REQUIRED>
]>

<RolesRootRoleID="0"RoleName="应用权限配置"RoleValue=""RoleUrl=""RoleMark="">
<RoleRoleID="CLGL"RoleName="车辆管理"RoleValue=""RoleUrl=""RoleMark="">
<RoleRoleID="CLGL_CLXX"RoleName="车辆基本信息"RoleValue=""RoleUrl="车辆管理/车辆基本信息"RoleMark="">
<RoleRoleID="CLGL_CLXX_BJ"RoleName="编辑"RoleValue=""RoleUrl=""RoleMark="clbjqx"></Role>
<RoleRoleID="CLGL_CLXX_XG"RoleName="修改"RoleValue=""RoleUrl=""RoleMark="clxgqx"></Role>
<RoleRoleID="CLGL_CLXX_SC"RoleName="删除"RoleValue=""RoleUrl=""RoleMark="clscqx"></Role>
</Role>
<RoleRoleID="CLGL_SJXX"RoleName="司机基本信息"RoleValue=""RoleUrl="车辆管理/司机基本信息"RoleMark="">
<RoleRoleID=""RoleName="编辑"RoleValue=""RoleUrl=""RoleMark="sjbjqx"></Role>
<RoleRoleID=""RoleName="修改"RoleValue=""RoleUrl=""RoleMark="sjxgqx"></Role>
<RoleRoleID=""RoleName="删除"RoleValue=""RoleUrl=""RoleMark="sjscqx"></Role>
</Role>
</Role>
</RolesRoot>

我们通过ID属性读取该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;
}

分享到:
评论

相关推荐

    C#读取XML文件并写入数据库

    - `XDocument` 和 `XmlDocument` 都提供了一种将整个XML文档加载到内存中的方式,然后可以方便地通过LINQ查询语法操作XML数据。适合较小的XML文件。 - `XDocument` 更为推荐,因为它提供了更简洁的API,而 `Xml...

    C#读取XML文件 xml .net

    以上就是使用C#读取XML文件的几种常见方法。选择哪种取决于你的具体需求,如性能、易用性、数据处理复杂度以及是否需要保持DOM。在实际开发中,可以根据项目需求灵活运用这些技术。请根据你的实际情况调整代码中的...

    c#读取XML文件

    在C#编程中,处理XML数据是常见的任务之一。XML(eXtensible Markup Language)是一种用于存储和传输结构化数据的标记语言,它在软件开发中广泛应用...在实际开发中,可以根据需求选择合适的方法来解析和操作XML文档。

    C# 读取XML文件并写入Excel表格

    综上所述,"C# 读取XML文件并写入Excel表格"这一主题涵盖了XML解析和Excel操作的关键技术,对于数据处理和报告生成等场景非常实用。在实际应用中,开发者可以根据具体需求调整代码逻辑,以满足各种复杂的业务需求。

    C#读取XML文件并显示在DataGrid组件中

    本教程将深入探讨如何使用C#读取XML文件并将其内容展示在DataGrid组件上,这是一个常见且实用的功能,尤其适用于数据展示和管理。 首先,我们需要引入必要的命名空间,包括`System.Xml`用于处理XML文件,以及`...

    C# XML文件读取示例

    `XmlDocument` 提供了加载和操作XML文档的方法。以下是一个简单的读取示例: ```csharp using System.Xml; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("employees.xml"); // 加载XML文件 // ...

    C# 操作XML文件 实例源码(文件处理)

    本文将深入探讨如何使用C#进行XML文件的操作,包括读取、写入、修改和解析XML文档。 首先,我们需要了解C#中的System.Xml命名空间,它提供了处理XML文档的各种类。最常用的是XmlDocument和XmlNode类,它们允许我们...

    C#读取Xml文件 C#读取Xml文件

    在.NET框架中,C#提供了丰富的类库来处理XML文件,使得读取、解析和操作XML文档变得简单易行。 1. **XML命名空间和相关类** - `System.Xml`命名空间是处理XML的核心,包含了大量用于读写、验证、序列化和反序列化...

    C#操作XML文件完整源码

    本篇将深入探讨如何使用C#进行XML文件的操作,包括读取、写入、解析、修改和创建XML文档。 首先,我们需要引入System.Xml命名空间,它包含了处理XML文档所需的所有类和方法。例如: ```csharp using System.Xml; `...

    C#读取XML文件.pdf

    在标题中提到的“C#读取XML文件”是本文档的中心内容。描述部分重复了标题,没有提供额外的信息。标签部分为空,没有提供辅助分类或关键词。从给定的部分内容中,可以总结出一系列关于使用C#语言读取XML文件的技术点...

    c#读取xml文件模型

    在C#编程中,XML(eXtensible ...以上就是关于“C#读取XML文件模型”的详细讲解,包括XML的基本概念、C#中读取XML的多种方法、XPath查询、Linq to XML以及XML序列化和反序列化。希望对你在处理XML文件时有所帮助。

    C#读取txt文件 C#读取xml文件

    以上就是关于“C#读取txt文件”和“C#读取xml文件”的详细知识,以及如何在WPF应用中结合MVVM模式进行操作。希望这对你理解C#文件读取和MVVM模式有所帮助。在实际项目中,还需要考虑异常处理、资源管理等其他因素,...

    C#操作XML文件完整源码(十分经典)

    本主题将深入探讨如何使用C#操作XML文件,通过以下知识点来理解并实现这一过程。 1. **XML基础知识**: - XML的结构:XML文件由元素、属性、文本内容和命名空间等构成,遵循严格的规则。 - XML文档对象模型(DOM...

    Q695201 问答问题的回答 C#读取xml文件数据。显示在datagridview控件问题

    在本文中,我们将深入探讨如何使用C#读取XML文件的数据,并将其显示在DataGridView控件中,这在开发Windows Forms或WPF应用程序时非常常见。 首先,我们需要了解如何使用C#的内置XML处理库,如`System.Xml`命名空间...

    C#操作XML,读取XML到数据库和增删改

    C# 语言可以轻松地操作 XML 文件,读取 XML 文件的内容并将其存储到数据库中。同时,C# 也可以对 XML 文件进行增删改操作。 读取 XML 文件 要读取 XML 文件,首先需要将 XML 文件加载到 XmlDocument 对象中。然后...

    C#读取XML教程和例子(有代码)

    本文将深入探讨如何使用C#语言读取XML文件,包括直接操作XML节点的方法以及通过序列化将XML文件转换为对象的方式。 ### 直接读取XML节点 #### 1. 使用`XmlDocument`类 `XmlDocument`是.NET Framework提供的一个类...

    用C#快速读取XML文件,并遍历

    1. **System.Xml命名空间**:C#中处理XML的主要工具位于System.Xml命名空间下,包括XmlDocument、XmlNode、XmlElement等类,它们提供了读取、写入和操作XML文档的功能。 2. **XmlDocument类**:这个类用于加载XML...

    C# LinqXML使用LINQ技术对XML文件进行读取

    在处理XML文档时,LINQ to XML(也称为LinqXML)是一个非常实用的API,它提供了面向对象的方式来创建、操作和读取XML文档。本文将详细介绍如何使用C#的LinqXML技术对XML文件进行读取。 首先,我们需要引入必要的...

    c#操作XML 读取、生成,WEBSERVICE接口

    其中,`XmlDocument`类是核心,用于加载和操作XML文档。例如,以下代码展示了如何读取一个XML文件: ```csharp using System.Xml; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("path_to_your_xml_...

    C#读取txt文件、C#读取xml文件

    使用MVVM Light,你可以创建一个ViewModel,声明一个`RelayCommand`来处理文件读取操作,并在View中绑定这个命令到Button或其他控件。 例如: ```csharp using GalaSoft.MvvmLight.Command; // ViewModel public ...

Global site tag (gtag.js) - Google Analytics