C#操作xml文档

mac2026-01-27  4

C#操作xml文档

1.创建XML文档

XmlDocument doc = new XmlDocument(); //创建xml文档对象,导包:using System.Xml; XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); //创建xml约束(dec)(避免出现乱码) doc.AppendChild(dec); //将约束添加到xml文档中 XmlElement root = doc.CreateElement("root"); //创建根节点(root) doc.AppendChild(root); //将根节点添加到文档(doc)中 XmlElement Son1 = doc.CreateElement("china"); //创建第一个子节点(china) Son1.SetAttribute("id", "1"); //设置属性,id=1 Son1.SetAttribute("cid", "1"); //设置属性,id=1 root.AppendChild(Son1); //将《china》添加到根节点(root)中 XmlElement Son2 = doc.CreateElement("province"); //创建《china》下的第一个子节点 Son2.InnerText = "辽宁省"; //把《辽宁省》存入 节点 province 中 Son1.AppendChild(Son2); //将节点(province)添加到《china》中 XmlElement Son3 = doc.CreateElement("city"); //创建子节点 city Son3.InnerXml = "沈阳市"; //把《沈阳市》存入 节点 《city》中 Son1.AppendChild(Son3); //将节点(city)添加到《china》中 doc.Save("china.xml"); //最重要的一步:保存
效果如下
<?xml version="1.0" encoding="utf-8"?> <root> <china id="1" cid="1"> <province>辽宁省</province> <city>沈阳市</city> </china> </root>

添加

XmlDocument doc = new XmlDocument(); //创建xml文档对象 doc.Load("china.xml"); //加载文件 XmlElement root = doc.DocumentElement; //获得xml文件中的根节点 XmlElement Son1 = doc.CreateElement("china"); //创建第一个子节点(china) root.AppendChild(Son1); //将《china》添加到根节点(root)中 XmlElement Son2 = doc.CreateElement("province"); //创建《china》下的第一个子节点 Son2.InnerText = "北京市"; //把《辽宁省》存入 节点 province 中 Son1.AppendChild(Son2); //将节点(province)添加到《china》中 XmlElement Son3 = doc.CreateElement("city"); //创建子节点 city Son3.InnerXml = "中国村"; //把《沈阳市》存入 节点 《city》中 Son1.AppendChild(Son3); //将节点(city)添加到《china》中 doc.Save("china.xml"); //最重要的一步:保存
效果如下
<?xml version="1.0" encoding="utf-8"?> <root> <china id="1" cid="1"> <province>辽宁省</province> <city>沈阳市</city> </china> <china> <province>北京</province> <city>中关村</city> </china> </root>

删 改 查

找到之后修改,找不到删除

XmlDocument doc = new XmlDocument(); //创建xml文档对象 doc.Load("china.xml"); //加载文件 XmlNodeList node = doc.SelectNodes("root/china"); //获取china下的所有值存到集合中,每个china节点各占一个位置 Console.WriteLine("--一共存在"+node.Count+"个china节点"); //输出:一共存在2个china节点 int i=0; foreach(XmlElement item in node) //遍历整个XmlNodeList,也就是整个china.xml下的所有china节点下的值 { i++; if (item["province"].InnerText == ("辽宁省")) { Console.WriteLine("第"+i+"次找到了"); item["province"].InnerText = "内蒙古自治区"; item["city"].InnerText = "赤峰市"; Console.WriteLine("修改成功"); } else { Console.WriteLine("第"+i+"次没找到"); item.ParentNode.RemoveChild(item); Console.WriteLine("删除完成"); } } doc.Save("china.xml"); //最重要的一步:保存 //输出《"第1次找到了"》 《修改成功》和《"第2次没找到"》 《删除完成》

效果如图

<?xml version="1.0" encoding="utf-8"?> <root> <china id="1" cid="1"> <province>内蒙古自治区</province> <city>赤峰市</city> </root>
最新回复(0)