C#如何操作XML文件
⒈XML?
XML是一种可扩展的标记语言
具有以下特点
1.严格区分大小写
2.标签成对出现
3.有且只有一个根节点
⒉XML的创建
1 <?xml version="1.0" encoding="utf-8" ?> 2 <Order> 3 <CustomerName>fanqi</CustomerName> 4 <Items> 5 <OrderItem Name="Money" count="100000000000000"/> 6 </Items> 7 </Order>
1 public static void create() 2 { 3 XmlDocument doc = new XmlDocument(); 4 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); 5 doc.AppendChild(dec); //将版本和编码信息添加到文档的第一行 6 7 XmlElement order = doc.CreateElement("Order"); 8 doc.AppendChild(order); //添加一个根级目录 9 10 XmlElement customerName = doc.CreateElement("CustomerName"); 11 customerName.InnerText = "fanqi"; //InnerText放文本时使用,特殊字符会转义 12 //customerName.InnerXml = "<h1> haha </h1>"; //InnerXml放标签时使用 13 order.AppendChild(customerName); 14 15 XmlElement items = doc.CreateElement("Items"); 16 order.AppendChild(items); 17 18 XmlElement orderitem = doc.CreateElement("OrderItem"); 19 orderitem.SetAttribute("Name", "Money"); 20 orderitem.SetAttribute("count", "100000000000000"); 21 items.AppendChild(orderitem); 22 23 doc.Save("fanqi.xml"); 24 }
⒊XML追加
1 public static void add() 2 { 3 XmlDocument doc = new XmlDocument(); 4 if (File.Exists("fanqi.xml")) 5 { 6 doc.Load("fanqi.xml"); 7 XmlElement books = doc.DocumentElement; //获得文件的根节点 8 } 9 else 10 { 11 //不存在就创建呗 12 } 13 doc.Save("fanqi.xml"); 14 }
⒋读取不带属性的XML
1 public static void loadNoAttribute() 2 { 3 XmlDocument doc = new XmlDocument(); 4 if (File.Exists("fanqi.xml")) 5 { 6 doc.Load("fanqi.xml"); 7 XmlElement order = doc.DocumentElement; //获得文件的根节点 8 XmlNodeList nodeList = order.ChildNodes; 9 foreach(XmlNode item in nodeList) //遍历输出子节点内容 10 { 11 Console.WriteLine(item.InnerText); 12 } 13 } 14 }
⒌读取带有属性的XML
1 public static void loadAttribute() 2 { 3 XmlDocument doc = new XmlDocument(); 4 if (File.Exists("fanqi.xml")) 5 { 6 doc.Load("fanqi.xml"); 7 XmlNodeList nodeList = doc.SelectNodes("/Order/Items/OrderItem"); 8 foreach (XmlNode item in nodeList) 9 { 10 Console.WriteLine(item.Attributes["Name"].Value); 11 Console.WriteLine(item.Attributes["count"].Value); 12 } 13 } 14 }
⒍更改XML属性的值
1 public static void modifyAttribute() 2 { 3 XmlDocument doc = new XmlDocument(); 4 if (File.Exists("fanqi.xml")) 5 { 6 doc.Load("fanqi.xml"); 7 XmlNode xn = doc.SelectSingleNode("/Order/Items/OrderItem[@Name='fanqi']"); 8 xn.Attributes["count"].Value = "999999999999"; 9 doc.Save("fanqi.xml"); 10 } 11 }
⒎删除节点
1 public static void removeNode() 2 { 3 XmlDocument doc = new XmlDocument(); 4 if (File.Exists("fanqi.xml")) 5 { 6 doc.Load("fanqi.xml"); 7 XmlNode xn = doc.SelectSingleNode("/Order/Items"); 8 xn.RemoveAll(); 9 doc.Save("fanqi.xml"); 10 } 11 }
作者:奇
出处:https://www.cnblogs.com/fanqisoft/p/10692531.html
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
分类:
.NET Core
如果文章内容对您有所帮助,欢迎赞赏.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!