c#如何实现读取xml文件内的数据

 更新时间:2025年08月28日 08:48:40   作者:ccut 第一混  
C#项目常用XML存储参数,通过字典、XmlDocument加载、XPath定位节点读取数据,实现配置管理,代码示例适用于WinForms,便于维护

c# 读取xml文件内的数据

好多大型的项目,把一些固定的参数都存在 xml文件里。

  • 创建c# winfom 项目,test_xml
  • 创建resources文件夹存放xml文件

  • 创建parameters.xml文件

<root>
    <test_xml>
        <param name ="threshold" value ="128"/>
        <param name ="sum_max" value ="100"/>
        <param name ="sum_min" value ="50"/>
        <param name ="ratio" value ="0.75"/>
        <param name ="img_path" value ="C:\\Users\\86957\\Pictures\\CCD\\0243480-20240326103539.jpg"/>
    </test_xml>
</root>


  • 根目录root
  • 项目目录test_xml
  • param+内容

c# 读取xml文件内的数据的方法

A创建字典用于存放数据:

Dictionary<string, string> Params = new Dictionary<string, string>();

B加载文件:

XmlDocument presentxml = new XmlDocument();
presentxml.Load(FileName);

(XmlDocument属于System.Xml命名空间,是XML文档的内存表示)

C定位:

XmlNodeList paramNodes = presentxml.SelectNodes("/root/test_xml/param"); 

(XmlNodeList表示通过XPath查询返回的节点集合)

D 读取并写入字典:

            foreach (XmlNode node in paramNodes)
            {
                string name = node.Attributes["name"].Value;  // 获取name属性
                string value = node.Attributes["value"].Value; // 获取value属性
                Params.Add(name, value); // 添加到字典
            }

(XmlNode表示XML文档中的单个节点(基类))

完整代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;

namespace test_xml
{
    public partial class Form1 : Form
    {
        //string xmldata_path = "D:\\VS\\works\\test_xml\\test_xml\\resources\\parameters.xml";//绝对
        string xmldata_path = "../../resources/parameters.xml";//相对
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            Dictionary<string, string> Params = new Dictionary<string, string>(ParamXML.ReadParamXML(xmldata_path));

            textBox1.AppendText(Params["threshold"]+"\r\n");
            textBox1.AppendText(Params["img_path"]+"\r\n");
            double difference = (int.Parse(Params["sum_max"]) - int.Parse(Params["sum_min"]))* double.Parse(Params["ratio"]);
            textBox1.AppendText(difference.ToString()+"\r\n");

        }
    }



    class ParamXML
    {
        public static Dictionary<string, string> ReadParamXML(string FileName)
        {
            Dictionary<string, string> Params = new Dictionary<string, string>();
            XmlDocument presentxml = new XmlDocument();
            presentxml.Load(FileName);

            
            XmlNodeList paramNodes = presentxml.SelectNodes("/root/test_xml/param"); // 使用XPath定位节点
            foreach (XmlNode node in paramNodes)
            {
                string name = node.Attributes["name"].Value;  // 获取name属性
                string value = node.Attributes["value"].Value; // 获取value属性
                Params.Add(name, value); // 添加到字典
            }



            return Params;
        }

    }






}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#采用HttpWebRequest实现保持会话上传文件到HTTP的方法

    C#采用HttpWebRequest实现保持会话上传文件到HTTP的方法

    这篇文章主要介绍了C#采用HttpWebRequest实现保持会话上传文件到HTTP的方法,很实用的功能,需要的朋友可以参考下
    2014-08-08
  • mvc开启gzip压缩示例分享

    mvc开启gzip压缩示例分享

    这篇文章主要介绍了mvc开启gzip压缩示例,需要的朋友可以参考下
    2014-03-03
  • c# 动态加载dll文件,并实现调用其中的方法(推荐)

    c# 动态加载dll文件,并实现调用其中的方法(推荐)

    下面小编就为大家带来一篇c# 动态加载dll文件,并实现调用其中的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • C#文件路径操作详细总结

    C#文件路径操作详细总结

    本篇文章主要是对C#中的文件路径操作进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#实现解压GZip文件的方法

    C#实现解压GZip文件的方法

    这篇文章主要介绍了C#实现解压GZip文件的方法,涉及C#操作压缩文件的技巧,需要的朋友可以参考下
    2015-05-05
  • C#实现简单打字小游戏

    C#实现简单打字小游戏

    这篇文章主要为大家详细介绍了C#实现简单打字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • 利用C#开发浏览器扩展的全过程记录

    利用C#开发浏览器扩展的全过程记录

    做web开发的同学,经常会用到各种chrome浏览器插件,那么我们寄几怎么开发一个插件呢(其实是浏览器扩展)?这篇文章主要给大家介绍了关于利用C#开发浏览器扩展的相关资料,需要的朋友可以参考下
    2021-07-07
  • c# 复写Equals方法的实现

    c# 复写Equals方法的实现

    本文主要介绍了c# 复写Equals方法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 用C#操纵IIS(代码)

    用C#操纵IIS(代码)

    用C#操纵IIS(代码)...
    2007-03-03
  • WPF仿Tabcontrol实现切换多个不同View

    WPF仿Tabcontrol实现切换多个不同View

    这篇文章主要为大家详细介绍了WPF如何模仿Tabcontrol实现切换多个不同View,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11

最新评论