一、读写已有文件
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));
}
}
}
}