您好,登錄后才能下訂單哦!
本篇內容介紹了“C#中XML文件內容增刪改查的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
XML是一種可擴展標記語言(EXtensible Markup Language)。
XML是一種很像HTML的標記語言。
XML的設計宗旨是傳輸數據,而不是顯示數據。
XML標簽沒有被預定義。您需要自行定義標簽。
XML被設計為具有自我描述性。
XML是 W3C 的推薦標準。
語法嚴謹,格式統一,符合標準。
容易與其他系統進行遠程交互,數據共享比較方便。
擴展性、彈性、易讀性均不佳。
XML文件龐大,文件格式復雜,傳輸占帶寬。
服務器端和客戶端解析XML花費較多的資源和時間。
在線xml驗證工具
<?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文件內容 }
“C#中XML文件內容增刪改查的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。