C#读写xml总结
来源:互联网 发布:梦三国2网络原因失败 编辑:程序博客网 时间:2024/06/05 04:58
private void readXml() { // 读取的基本思路: // 可以一次获取一个节点列表出来:XmlNodeList = XmlDocument.GetElementsByTagName("节点名称") // 遍历这个节点列表:foreach (XmlElement item in xmlNodeList) {} // 获取一个节点的属性值:XmlElement.GetAttribute("属性名"); // 获取一个节点的子节点列表:XmlNodeList = XmlElement.ChildNodes; // 获取XmlNodeList的某个子节点:xnl[i] // 获取XmlNodeList的某个子节点的节点值:xnl[i].InnerXml string fileName = @"D:\test.xml"; XmlDocument xd = new XmlDocument(); xd.Load(fileName); XmlNodeList xmlNodeList = xd.GetElementsByTagName("user"); List<User> users = new List<User>(); foreach (XmlElement item in xmlNodeList) { User user = new User(); user.Id = int.Parse(item.GetAttribute("id")); XmlNodeList xnl = item.ChildNodes; user.Name = xnl[0].InnerXml; user.Age = int.Parse(xnl[1].InnerXml); user.Gender = xnl[2].InnerXml; users.Add(user); } foreach (var item in users) { Debug.WriteLine(item); } } private void writeXml() { // 基本思路是: // 创建xml声明:XmlNode = XmlDocument.CreateXmlDeclaration("1.0", "utf-8", null); // 创建一个节点:XmlElement = XmlDocument.CreateElement("节点名"); // 给节点设置属性:XmlElement.SetAttribute("属性名","属性值"); // 给节点设置Text:XmlElement.InnerText = "值" // 添加子节点到父节点:XmlElement.AppendChild(子节点); Debug.WriteLine("test ok!"); string fileName = @"D:\test.xml"; XmlDocument xmlDoc = new XmlDocument(); XmlNode header = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null); xmlDoc.AppendChild(header); XmlElement rootNode = xmlDoc.CreateElement("users"); List<User> list = GetUsers(); foreach (var item in list) { XmlElement xn = InsertUser(item, xmlDoc); rootNode.AppendChild(xn); } xmlDoc.AppendChild(rootNode); xmlDoc.Save(fileName); } private static XmlElement InsertUser(User user, XmlDocument xmlDoc) { // 创建一个节点,标签是user XmlElement xn = xmlDoc.CreateElement("user"); // 给这个节点设置一个属性名为id,并为此属性赋值 xn.SetAttribute("id", user.Id + ""); // 此标签下append新的节点 xn.AppendChild(GetXmlNode(xmlDoc,"name",user.Name)); xn.AppendChild(GetXmlNode(xmlDoc, "age", user.Age + "")); xn.AppendChild(GetXmlNode(xmlDoc, "gender", user.Gender)); return xn; } private static XmlElement GetXmlNode(XmlDocument xmlDoc, string name, string value) { // 创建一个节点,被赋予text值,但是不赋予属性 XmlElement xn = xmlDoc.CreateElement(name); xn.InnerText = value; return xn; } private static List<User> GetUsers() { List<User> list = new List<User>(); for (int i = 0; i < 10; i++) { User user = new User(); user.Id = i; user.Name = "Name" + i; user.Age = 15; user.Gender = "男"; list.Add(user); } return list; }
user类:
class User { public int Id { set; get; } public string Name { get; set; } public int Age { get; set; } public string Gender { set; get; } public override string ToString() { return Id + "," + Name + "," + Age + "," + Gender; } }
// 注意非法字符转义
< < 小于
> > 大于
& & 和号
' ' 单引号
" " 双引号
只需要在xml里面,对应的非法字符替换为左边的转义字符,则读写都按照当没有这个转义存在一样
比如xml里:
<add key="key1" value="hello"/> <add key="key2" value="world!"/> <add key="CIF" value="1"/> <add key="C&F" value="2"/> <add key="FOB" value="3"/> <add key="C&I" value="4"/> <add key="市场价" value="5"/> <add key="垫仓" value="6"/>在代码里如常访问:
string key1 = ConfigSettings.ReadSetting("C&F"); Debug.WriteLine("C&F=" + key1);
参考这里:https://www.cnblogs.com/hhzz/p/6592452.html
阅读全文
0 0
- C#读写xml总结
- C# Xml文件的读写总结
- C# 读写XML文件的方法详细总结
- c#读写xml文件
- c#读写xml文件
- c#读写xml文件
- C#读写xml文件
- c#读写xml文件
- C#读写xml文件
- c# 读写xml文件
- C#读写xml文件
- C#读写xml文件
- C#读写XML文件
- c#读写xml文件
- C#读写xml文件
- C# 读写XML文件
- c#读写xml文件
- C# 读写XML文件
- Java虚拟机原理分析之Win10下VS2017编译OpenJDK8与单步调试HotSpot VM过程详细记录
- Day014
- JavaWeb自主学习--JavaScript(一),day3
- 《Python网络数据采集》第一章、第二章(阅读代码笔记)
- cs231课程---作业1总结
- C#读写xml总结
- Service Unavailable HTTP Error 503. The service is unavailable.应用程序池就会自动关闭。
- BZOJ3669 [Noi2014]魔法森林
- 基于mvc模式的应用框架之Hibernate(五)
- 前端优化:DNS预解析提升页面速度
- Spark Tutorial Lab2
- 多线程与单例对象之间的关系---笔记
- Myeclipse中安装mybatis generator插件离线安装方式
- 阻抗匹配思考