C#针对xml文件转化Dictionary的方法

使用C#将xml文件转化为Dictionary有以下几个步骤:

步骤一:引入相关命名空间

首先需要引入System.Xml和System.Collections.Generic两个命名空间,其中System.Xml用于操作XML文件,System.Collections.Generic用于操作泛型集合数据类型。

using System.Xml;
using System.Collections.Generic;

步骤二:读取Xml文件内容

使用XmlDocument类读取Xml文件的内容,通过Load方法加载Xml文件,然后可以使用GetElementsByTagName方法获取Xml根元素下面的所有节点元素。

XmlDocument xDoc = new XmlDocument();
xDoc.Load("myfile.xml");
XmlNodeList xNodes = xDoc.GetElementsByTagName("item");

步骤三:遍历Xml节点,并将节点的属性和子节点信息添加到Dictionary中

遍历节点信息,并将节点的属性和子节点信息添加到Dictionary中,其中传入的参数节点名称需要和Xml文件中的节点名称相匹配。

Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (XmlNode xNode in xNodes)
{
    if (xNode.Attributes != null && xNode.Attributes.Count > 0)
    {
        dict.Add(xNode.Attributes["name"].Value, xNode.Attributes["value"].Value);
    }
    else
    {
        dict.Add(xNode["name"].InnerText, xNode["value"].InnerText);
    }
}

上面的示例代码中,在遍历节点信息时,首先判断节点是否拥有属性,如果有属性则直接读取属性添加到Dictionary中,否则读取子节点的信息添加到Dictionary中。

示例说明:

示例1:读取xml文件中的用户信息

Xml文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<items>
    <item name="username" value="tom"/>
    <item name="age" value="18"/>
    <item name="gender" value="male"/>
</items>

使用上述代码读取该文件,可以将文件中的用户信息存储到一个Dictionary中:

XmlDocument xDoc = new XmlDocument();
xDoc.Load("userinfo.xml");
XmlNodeList xNodes = xDoc.GetElementsByTagName("item");
Dictionary<string, string> userDict = new Dictionary<string, string>();
foreach (XmlNode xNode in xNodes)
{
    if (xNode.Attributes != null && xNode.Attributes.Count > 0)
    {
        userDict.Add(xNode.Attributes["name"].Value, xNode.Attributes["value"].Value);
    }
}

这里读取的是一个用户信息文件,将文件中的用户名、年龄和性别添加到一个Dictionary中,其中以每个节点的name属性作为key,以其value属性作为value,最终得到的结果就是:

username=tom 
age=18
gender=male

示例2:读取xml文件中的商品信息

Xml文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<items>
    <item>
        <name>iPhoneX</name>
        <price>8000</price>
        <desc>这是一个不错的手机</desc>
    </item>
    <item>
        <name>Note10</name>
        <price>9999</price>
        <desc>非常良心的一款手机</desc>
    </item>
</items>

使用上述代码读取该文件,可以将文件中的商品信息存储到一个Dictionary列表中:

XmlDocument xDoc = new XmlDocument();
xDoc.Load("product.xml");
XmlNodeList xNodes = xDoc.GetElementsByTagName("item");
List<Dictionary<string, string>> products = new List<Dictionary<string, string>>();
foreach (XmlNode xNode in xNodes)
{
    Dictionary<string, string> dict = new Dictionary<string, string>();
    dict.Add("name", xNode["name"].InnerText);
    dict.Add("price", xNode["price"].InnerText);
    dict.Add("desc", xNode["desc"].InnerText);
    products.Add(dict);
}

这里读取的是一个商品信息文件,将文件中每个商品的名称、价格和描述添加到一个Dictionary中,最终得到的结果就是一个Dictionary列表,每个Dictionary元素包含一个商品的名称、价格和描述,例如以下两个元素:

{"name":"iPhoneX", "price":"8000", "desc":"这是一个不错的手机"}
{"name":"Note10", "price":"9999", "desc":"非常良心的一款手机"}

到这里为止,C#针对xml文件转化Dictionary的方法就讲解完毕了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#针对xml文件转化Dictionary的方法 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C#中结构(struct)的部分初始化和完全初始化实例分析

    下面是详细讲解“C#中结构(struct)的部分初始化和完全初始化实例分析”的完整攻略。 什么是结构(struct) 在C#中,结构是一种值类型的数据结构,可以在它里面定义变量和方法,其中变量被称为字段。结构和类很相似,但是结构有一些自己的特点,如: 结构是值类型,而类是引用类型; 结构不支持继承; 结构不能定义默认构造函数; 结构可以定义ParamArra…

    C# 2023年5月15日
    00
  • C#实现字符串进制转换方法汇总

    C#实现字符串进制转换方法汇总 介绍 在C#中,我们经常需要进行字符串进制转换的操作。例如将十六进制字符串转换为十进制数字,或者将二进制字符串转换为十进制数字等等。本文将介绍几种实现字符串进制转换的方法。 实现方法 方法一:Convert.ToInt32方法 Convert.ToInt32方法可以将字符串转换为指定进制的数字。该方法的语法如下: Conver…

    C# 2023年6月8日
    00
  • C#将html table 导出成excel实例

    下面是关于“C#将html table 导出成excel实例”的完整攻略。 1. 环境准备 在使用C#将HTML表格导出为Excel之前,需要确保安装并引用以下两个库: EPPlus :一个用于创建和读取Excel的开源库,可在 Nuget 上查找和安装。 HtmlAgilityPack: 一个用于处理HTML文档的开源库,可在 Nuget 上查找和安装。 …

    C# 2023年6月2日
    00
  • js获取Treeview选中的节点(C#选中CheckBox项)

    下面是如何用JavaScript获取TreeView选中的节点: 1. 使用querySelectorAll函数 // 获取全部被选中的复选框元素 const checkedNodes = document.querySelectorAll(‘input[type="checkbox"]:checked’); // 遍历复选框元素 che…

    C# 2023年6月6日
    00
  • .NET Core利用动态代理实现AOP(面向切面编程)

    文章概述: 本文将讲解如何利用动态代理实现AOP(面向切面编程)的过程。首先,我们介绍AOP的概念和原理。然后,我们详细说明如何使用动态代理实现AOP的过程。最后,我们提供了两个示例,演示如何通过AOP实现日志记录和异常处理。 什么是AOP? AOP全称为Aspect Oriented Programming,翻译成中文即“面向切面编程”。它是一种编程思想,…

    C# 2023年6月3日
    00
  • .NET中读取Excel文件的数据及excelReader应用

    【.NET中读取Excel文件的数据及excelReader应用】 为什么选择excelReader excelReader是一个免费、轻量级的Excel文件读取工具; excelReader支持读取多种不同格式的Excel文件,包括xls,xlsx,csv等; excelReader具有较高的兼容性,可以在不同操作系统和框架环境下使用。 实现步骤 安装ex…

    C# 2023年6月3日
    00
  • asp.net使用ashx生成图形验证码的方法示例

    下面我将为您详细讲解如何使用ashx生成图形验证码的方法。 1.什么是ASHX? ASHX 全称是“ASP.NET Generic Handler”,是一种特殊的文件类型,可以处理的内容不止HTML,还可以处理图片、脚本、样式表等类型。 2. ashx生成图形验证码的过程 使用 ASHX 生成图形验证码的过程分为以下几个步骤: 1)创建 ASHX 文件 在 …

    C# 2023年5月31日
    00
  • xUnit 编写 ASP.NET Core 单元测试的方法

    xUnit 编写 ASP.NET Core 单元测试的方法 在ASP.NET Core应用程序中,可以使用xUnit编写单元测试。在本攻略中,我们将介绍如何使用xUnit编写ASP.NET Core单元测试,并提供两个示例说明。 1. 安装xUnit 在ASP.NET Core应用程序中,可以使用NuGet包管理器安装xUnit。可以按照以下步骤操作: 在V…

    C# 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部