C# 读写XML

一、读写已有文件

XmlElement root;
XmlElement element;
XmlDocument myXmlDoc = new XmlDocument();
myXmlDoc.Load("./xmlfile.config");
root = myXmlDoc.DocumentElement;
element= root.SelectSingleNode("//elementName") as XmlElement;
element.SetAttribute("value", "elementValue");
myXmlDoc.Save("./xmlfile.config");

exe目录下xmlfile.config文件内容如下:

<?xml version="1.0"?>
<root>
  <elementName value="elementValue" />
</root>

二、根据类型读写

数据类型

   public class FileInfo
    {
        private FileInfo() { }
        private static FileInfo Instance = new FileInfo();
        public static FileInfo GetInstance()
        {
            return Instance; 
        }
        public static void SetInstance(FileInfo fileInfo)
        {
            Instance = fileInfo;
        }
        public string FileName { get; set; }
        public List<Chapter> Chapters { get; set; } 
        public ushort ChapterIndex { get; set; } 
    }   
    public class Chapter
    {
        public string ChapterName { get; set; } 
        public List<string> ContentLines { get; set; } 
        public ushort LineIndex { get; set; } 
    }

读写方法:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;

namespace Secluded_Reader_WinForm
{
    internal class ClsXmlFileProcessor
    {
        private static ClsXmlFileProcessor instance=new ClsXmlFileProcessor();

        private ClsXmlFileProcessor() { }

        public static ClsXmlFileProcessor GetInstance()
        {
            return instance;
        }

        public void Write(string filePath)
        {
            var serializer = new XmlSerializer(typeof(FileInfo));
            using (var writer = new StreamWriter(filePath))
            {
                serializer.Serialize(writer, FileInfo.GetInstance());
            }
        }

        public void Read(string filePath)
        {
            var serializer = new XmlSerializer(typeof(FileInfo));

            using (var reader = new StreamReader(filePath))
            {
                FileInfo.SetInstance((FileInfo)serializer.Deserialize(reader));
            }
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值