xml基础总结
可扩展的标记语言(eXtensible Markup Language)
优点:容易读懂;格式标准任何语言都内置了XML分析引擎,不用单独进行文件分析引擎的编写。
用普通二进制传输数据的缺点,解析方式各异
XML语法规范:标签(Tag)、嵌套(Nest)、属性。标签要闭合,属性值要用""包围,标签可以互相嵌套
大小写敏感(CaseSensitive):标签、属性名是区分大小写的。
XML树,父节点、子节点、兄弟节点(siblings)
XML和HTML的区别:XML中元素必须关闭!XML中元素的属性值必须用引号。Html大小写不敏感,xml大小写敏感,html主要是用来显示数据的,xml主要是存储数据。
XML中XmlElement和XmlNode的区别
Xml节点有多种类型:属性节点、注释节点、文本节点、元素节点等
Xml元素:元素节点。 继承自XmlNode
InnerText和InnerXML:InnerText在xml文件里显示的部分 如果有尖括号 会被转译 而InnerXML不会!
xml内所有的内容都是节点 标签式元素
SetAttribute 属性设置
DocumentElement 根节点
创建xml文件的步骤:
1.在内存中创建xml
XmlDocument doc = new XmlDocument();
2.在内存中创建xml声明
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); doc.AppendChild(dec);//添加到xml文档上
3.添加根节点
//根节点 Order XmlElement order = doc.CreateElement("Order"); doc.AppendChild(order); //创建子节点元素 XmlElement customerName = doc.CreateElement("CustomerName"); customerName.InnerText = "小三"; //追加到父节点order上 order.AppendChild(customerName);
4.添加子节点及属性
1 XmlElement items = doc.CreateElement("Items"); 2 3 order.AppendChild(items); 4 5 //添加属性 6 7 XmlElement orderItem1 = doc.CreateElement("OrderItem"); 8 9 orderItem1.SetAttribute("Name", "小三"); 10 11 orderItem1.SetAttribute("Count","10"); 12 13 items.AppendChild(orderItem1);
5.//保存到文件
doc.Save("order.xml");//从内存中保存到xml中
怎么读xml文件 标签没有属性的情况:
1 XmlDocument doc = new XmlDocument(); 2 3 //加载xml文件 4 5 doc.Load("books.xml");//在这之前要判断文件是否存在 6 7 //根节点 8 9 XmlElement books = doc.DocumentElement;//找到根节点DocumentElement 10 11 //books 下的所有book元素 12 13 XmlNodeList xnl = books.ChildNodes; 14 15 foreach (XmlNode node in xnl) 16 17 { 18 19 Console.WriteLine(node.ChildNodes[0].InnerText); 20 21 Console.WriteLine(node.ChildNodes[1].InnerText); 22 23 }
有属性的情况:
1 XmlDocument doc = new XmlDocument(); 2 3 doc.Load("order.xml"); 4 5 //根节点 6 7 XmlElement root = doc.DocumentElement; 8 9 XmlNodeList xnl = root.ChildNodes; 10 11 //读取标签的名字 12 13 //Console.WriteLine(xnl[0].Name); 14 15 Console.WriteLine(xnl[0].InnerText); 16 17 Console.WriteLine(xnl[1].InnerText); 18 19 XmlNode items = xnl[2]; 20 21 //orderitem 22 23 XmlNodeList xnl1 = items.ChildNodes; 24 25 foreach (XmlNode node in xnl1) 26 27 { 28 29 //获取属性的值 30 31 Console.WriteLine(node.Attributes["Name"].Value); 32 33 Console.WriteLine(node.Attributes["Count"].Value); 34 35 } 36 37
修改指定的节点
1 XmlDocument doc = new XmlDocument(); 2 3 doc.Load("order.xml"); 4 5 //修改指定的节点 6 7 //XmlNode node = doc.SelectSingleNode("/Order/CustomerName"); 8 9 //node.InnerText = "小薇"; 10 11 ////Console.WriteLine(node.InnerText); 12 13 //doc.Save("order.xml"); 14 15 //使用xpath 读取指定的节点 此种方式比较方便 16 17 //XmlNode node = doc.SelectSingleNode("/Order/CustomerName"); 18 19 //Console.WriteLine(node.InnerText); 20 21 //XmlNodeList xnl = doc.SelectNodes("/Order/Items/OrderItem"); 22 23 //foreach (XmlNode node in xnl) 24 25 //{ 26 27 // Console.WriteLine(node.Attributes["Name"].Value); 28 29 // Console.WriteLine(node.Attributes["Count"].Value); 30 31 //} 32 33 //根据标签的属性,读取指定的节点 34 35 XmlNode node = doc.SelectSingleNode("/Order/Items/OrderItem[@Name='媳妇']"); 36 37 node.Attributes["Count"].Value = "20"; 38 39 doc.Save("order.xml");
-
博客地址:http://www.cnblogs.com/wolf-sun/
博客版权:如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义