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");?
轉載于:https://www.cnblogs.com/wolf-sun/p/3198013.html
總結
- 上一篇: 配置单臂路由
- 下一篇: 7_15_2013 E: 机器人II