<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最近對接了一個第三方的專案,該專案的資料傳輸格式是XML。由於工作多年只有之前在醫療行業的時候有接觸過少量資料格式是XML的介面,之後就幾乎沒有接觸過了。因此對於XML這塊自己感覺還是有很多盲點和不足的,所以自己通過一些網上的資料總結了一下XML相關知識點。
線上xml驗證工具:http://tools.jb51.net/code/xmlcodeformat
<?xml version="1.0" encoding="utf-8"?> <books> <book> <author>追逐時光者</author> <title>XML學習教學</title> <publisher>時光出版社</publisher> </book> </books>
跳脫字元 | 符號 | 名稱 |
---|---|---|
& | & | 和號 |
< | < | 小於 |
> | > | 大於 |
' | ' | 省略號 |
" | " | 引號 |
嚴格地講,在 XML 中僅有字元 "<"和"&" 是非法的。省略號、引號和大於號是合法的。這時,Xml有兩種解決方案來處理這種問題。
CDATA
跳脫字元
/// <summary> /// 特殊符號轉換為跳脫字元 /// </summary> /// <param name="xmlStr"></param> /// <returns></returns> public string XmlSpecialSymbolConvert(string xmlStr) { return xmlStr.Replace("&", "&").Replace("<", "<").Replace(">", ">").Replace("'", "'").Replace(""", """); }
/// <summary> /// 建立Xml檔案 /// </summary> public void CreateXmlFile() { XmlDocument xmlDoc = new XmlDocument(); //建立型別宣告節點 XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", ""); xmlDoc.AppendChild(node); //建立Xml根節點 XmlNode root = xmlDoc.CreateElement("books"); xmlDoc.AppendChild(root); XmlNode root1 = xmlDoc.CreateElement("book"); root.AppendChild(root1); //建立子節點 CreateNode(xmlDoc, root1, "author", "追逐時光者"); CreateNode(xmlDoc, root1, "title", "XML學習教學"); CreateNode(xmlDoc, root1, "publisher", "時光出版社"); //將檔案儲存到指定位置 xmlDoc.Save("D://xmlSampleCreateFile.xml"); } /// <summary> /// 建立節點 /// </summary> /// <param name="xmlDoc">xml檔案</param> /// <param name="parentNode">Xml父節點</param> /// <param name="name">節點名</param> /// <param name="value">節點值</param> /// public void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value) { //建立對應Xml節點元素 XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null); node.InnerText = value; parentNode.AppendChild(node); }
<?xml version="1.0" encoding="utf-8"?> <books> <book> <author>追逐時光者</author> <title>XML學習教學</title> <publisher>時光出版社</publisher> </book> </books>
這次我們是在上一次新建的XML檔案中做操作,在book二級節點下新增一個新的節點名為publishdate(釋出時間),該節點的value為2022-03-26。
private static void AppendNode() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D://xmlSampleCreateFile.xml");//載入Xml檔案 XmlNode root = xmlDoc.SelectSingleNode("books/book");//選擇要新增子節點的book節點 //建立一個新的Xml節點元素 XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, "publishdate", null); node.InnerText = "2022-03-26"; root.AppendChild(node);//將建立的item子節點新增到items節點的尾部 xmlDoc.Save("D://AppendNodeFile.xml");//儲存修改的Xml檔案內容 }
<?xml version="1.0" encoding="utf-8"?> <books> <book> <author>追逐時光者</author> <title>XML學習教學</title> <publisher>時光出版社</publisher> <publishdate>2022-03-26</publishdate> </book> </books>
這次我們是在第一次新建的XML檔案中做操作,把在book二級節點下的author的內容改成:大姚同學
private static void UpdateXml() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D://xmlSampleCreateFile.xml");//載入Xml檔案 XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查詢要修改的節點 XmlNodeList xmlNodeList = xns.ChildNodes;//取出book節點下所有的子節點 foreach (XmlNode xmlNode in xmlNodeList) { XmlElement xmlElement = (XmlElement)xmlNode;//將節點轉換一下型別 if (xmlElement.Name=="author")//判斷該子節點是否是要查詢的節點 { xmlElement.InnerText = "大姚同學";//設定新值 break; } } xmlDoc.Save("D://UpdateXml.xml");//儲存修改的Xml檔案內容 }
<?xml version="1.0" encoding="utf-8"?> <books> <book> <author>大姚同學</author> <title>XML學習教學</title> <publisher>時光出版社</publisher> </book> </books>
這次我們是在第一次新建的XML檔案中做操作,刪除author節點。
private static void DeleteXmlNode() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D://xmlSampleCreateFile.xml");//載入Xml檔案 XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查詢要刪除的根節點 #region 刪除author節點 var delNode = xmlDoc.SelectSingleNode("books/book/" + "author"); xns.RemoveChild(delNode); #endregion xmlDoc.Save("D://DeleteXmlNode.xml");//儲存操作後的Xml檔案內容 }
這次我們是在第一次新建的XML檔案中做操作,清空author節點下的資料。
private static void ClearDataXmlNode() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D://xmlSampleCreateFile.xml");//載入Xml檔案 XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查詢要刪除的根節點 #region 清空author節點下的資料 XmlNodeList xmlNodeList = xns.ChildNodes;//取出book節點下所有的子節點 foreach (XmlNode xmlNode in xmlNodeList) { XmlElement xmlElement = (XmlElement)xmlNode;//將節點轉換一下型別 if (xmlElement.Name == "author")//判斷該子節點是否是要查詢的節點 { //清空author節點下的資料 xmlElement.RemoveAll();//刪除該節點的全部內容 } } #endregion xmlDoc.Save("D://ClearDataXmlNode.xml");//儲存操作後的Xml檔案內容 }
.NET中XML序列化和反序列化常用類和用來控制XML序列化的屬性總結
到此這篇關於C# XML基礎入門小結(XML檔案內容增刪改查清)的文章就介紹到這了,更多相關C# XML基礎入門內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45