C#针对xml基本操作及保存配置文件应用实例
本篇章节讲解C#针对xml的基本操作及保存配置文件应用,分享给大家供大家参考。具体方法如下: 引言:这里首先介绍了xml的基本操作,后面写了一个经常用到的xml保存配置文件的实例。 xml常用方法: 定义xml文档:XmlDocument xmlDoc = new XmlDocument(); 初始化xml文档:xmlDoc.Load("D:book.xml");//找到xml文件 创建根元素:XmlElement xmlElement = xmlDoc.CreateElement("","Employees",""); 创建节点:XmlElement xeSub1 = xmlDoc.CreateElement("title"); 查找Employees节点:XmlNode root = xmlDoc.SelectSingleNode("Employees"); 添加节点:xe1.AppendChild(xeSub1); 更改节点的属性:xe.SetAttribute("Name","李明明"); 移除xe的ID属性:xe.RemoveAttribute("ID"); 删除节点title:xe.RemoveChild(xe2); 1 创建xml文档 因为比较简单,直接写方法及结果。 复制代码 代码如下: public void CreateXMLDocument()
{ XmlDocument xmlDoc = new XmlDocument(); //加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?> //加入Employees根元素 //添加节点 //添加子节点
结果: 复制代码 代码如下: <?xml version="1.0" encoding="GB2312"?>
-<Employees>- <Node ISB="2-3631-4" Name="李明"> <title>学习VS</title>- <price> <weight>20</weight> </price> </Node> </Employees> 2 增加节点 复制代码 代码如下: XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("D:book.xml");//找到xml文件 XmlNode root = xmlDoc.SelectSingleNode("Employees");//查找Employees节点 XmlElement xe1 = xmlDoc.CreateElement("Node2");//添加Node2节点 xe1.SetAttribute("Name","张三"); XmlElement xeSub1 = xmlDoc.CreateElement("title");//定义子节点 xeSub1.InnerText = "心情好"; xe1.AppendChild(xeSub1);//添加节点到Node2 root.AppendChild(xe1);//添加节点到Employees xmlDoc.Save("D:book.xml"); 结果: 复制代码 代码如下: <?xml version="1.0" encoding="GB2312"?>
-<Employees> -<Node ISB="2-3631-4" Name="李明"> <title>学习VS</title>- <price> <weight>20</weight> </price> </Node>- <Node2 Name="张三"> <title>心情好</title> </Node2>- <Node2 Name="张三"> <title>心情好</title> </Node2> </Employees> 3 修改节点: 复制代码 代码如下: public void ModifyNode()
{ XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load("D:book.xml"); XmlNodeList nodeList = xmlDocument.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点 foreach (XmlNode xn in nodeList)//遍历 XmlNodeList xnl = xe.ChildNodes;//获取xe的所有子节点 if (xe2.Name == "price") xmlDocument.Save("D:book2.xml"); 运行结果: 复制代码 代码如下: <?xml version="1.0" encoding="GB2312"?>
-<Employees> -<Node ISB="2-3631-4" Name="李明明"> <title>今天天气不好</title>-<price> <weight>88</weight> </price> </Node> -<Node2 Name="张三"> <title>心情好</title> </Node2></Employees> 4 删除节点: 复制代码 代码如下: public void DeleteNode()
{ XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load("D:book1.xml"); XmlNodeList xnl = xmlDocument.SelectSingleNode("Employees").ChildNodes; foreach (XmlNode xn in xnl) xmlDocument.Save("D:book3.xml"); 结果: 复制代码 代码如下: <?xml version="1.0" encoding="GB2312"?>
-<Employees> -<Node ISB="2-3631-4" Name="李明">-<price> <weight>20</weight> </price> </Node>- <Node2 Name="张三"> <title>心情好</title> </Node2>- <Node2 Name="张三"> <title>心情好</title> </Node2> </Employees> 前面介绍了xml的创建、节点的添加、节点的修改和删除,下面以写的一个保存项目配置文件的小例子。 举例说明: 首先在项目文件中创建一个xml文档: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8" ?>
<configurationN> <ServerAddress>1143</ServerAddress> <ID>192.168</ID> </configurationN> 在保存配置文件时,最主要使用了两个方法:Load和Save。 Load:初始化xml文档,以便项目文件获取具体的xml节点的值。 复制代码 代码如下: public void Load(string path)
{ try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(path); XmlNodeList xnl = xmlDocument.SelectSingleNode(managerNode).ChildNodes; Save:在项目系统中进行修改配置文件值后,需要对xml进行重新保存 复制代码 代码如下: public void Save(string path)
{ try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(path); XmlNodeList xnl = xmlDocument.SelectSingleNode(managerNode).ChildNodes; xmlDocument.Save(path); 此处将所有代码都贴出来,方便下次实现。因为项目是WPF文件,而且都是简单控件,所以只贴出后台代码。 复制代码 代码如下: class ConfigurationManager:INotifyPropertyChanged
{ public const string managerNode = "configurationN";//根节点 public const string configuration_ServerAddress = "ServerAddress";//子节点 private string _ServerAddress; public void Load(string path) XmlNodeList xnl = xmlDocument.SelectSingleNode(managerNode).ChildNodes; public void Save(string path) XmlNodeList xnl = xmlDocument.SelectSingleNode(managerNode).ChildNodes; xmlDocument.Save(path); public event PropertyChangedEventHandler PropertyChanged; public static ConfigurationManager Instance = new ConfigurationManager(); public partial class MainWindow : Window } private void button1_Click(object sender,RoutedEventArgs e) private void button2_Click(object sender,RoutedEventArgs e) private void Start() PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用: 在线XML/JSON互相转换工具: 在线格式化XML/在线压缩XML: XML在线压缩/格式化工具: 希望本文所述对大家的C#程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |