您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“C#中XML文件內(nèi)容增刪改查的方法”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
XML是一種可擴(kuò)展標(biāo)記語言(EXtensible Markup Language)。
XML是一種很像HTML的標(biāo)記語言。
XML的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而不是顯示數(shù)據(jù)。
XML標(biāo)簽沒有被預(yù)定義。您需要自行定義標(biāo)簽。
XML被設(shè)計(jì)為具有自我描述性。
XML是 W3C 的推薦標(biāo)準(zhǔn)。
語法嚴(yán)謹(jǐn),格式統(tǒng)一,符合標(biāo)準(zhǔn)。
容易與其他系統(tǒng)進(jìn)行遠(yuǎn)程交互,數(shù)據(jù)共享比較方便。
擴(kuò)展性、彈性、易讀性均不佳。
XML文件龐大,文件格式復(fù)雜,傳輸占帶寬。
服務(wù)器端和客戶端解析XML花費(fèi)較多的資源和時(shí)間。
在線xml驗(yàn)證工具
<?xml version="1.0" encoding="utf-8"?> <books> <book> <author>追逐時(shí)光者</author> <title>XML學(xué)習(xí)教程</title> <publisher>時(shí)光出版社</publisher> </book> </books>
轉(zhuǎn)義字符 | 符號(hào) | 名稱 |
---|---|---|
& | & | 和號(hào) |
< | < | 小于 |
> | > | 大于 |
' | ' | 省略號(hào) |
" | " | 引號(hào) |
嚴(yán)格地講,在 XML 中僅有字符 "<"和"&" 是非法的。省略號(hào)、引號(hào)和大于號(hào)是合法的。這時(shí),Xml有兩種解決方案來處理這種問題。
CDATA
轉(zhuǎn)義字符
/// <summary> /// 特殊符號(hào)轉(zhuǎn)換為轉(zhuǎn)義字符 /// </summary> /// <param name="xmlStr"></param> /// <returns></returns> public string XmlSpecialSymbolConvert(string xmlStr) { return xmlStr.Replace("&", "&").Replace("<", "<").Replace(">", ">").Replace("\'", "'").Replace("\"", """); }
/// <summary> /// 創(chuàng)建Xml文件 /// </summary> public void CreateXmlFile() { XmlDocument xmlDoc = new XmlDocument(); //創(chuàng)建類型聲明節(jié)點(diǎn) XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", ""); xmlDoc.AppendChild(node); //創(chuàng)建Xml根節(jié)點(diǎn) XmlNode root = xmlDoc.CreateElement("books"); xmlDoc.AppendChild(root); XmlNode root1 = xmlDoc.CreateElement("book"); root.AppendChild(root1); //創(chuàng)建子節(jié)點(diǎn) CreateNode(xmlDoc, root1, "author", "追逐時(shí)光者"); CreateNode(xmlDoc, root1, "title", "XML學(xué)習(xí)教程"); CreateNode(xmlDoc, root1, "publisher", "時(shí)光出版社"); //將文件保存到指定位置 xmlDoc.Save("D://xmlSampleCreateFile.xml"); } /// <summary> /// 創(chuàng)建節(jié)點(diǎn) /// </summary> /// <param name="xmlDoc">xml文檔</param> /// <param name="parentNode">Xml父節(jié)點(diǎn)</param> /// <param name="name">節(jié)點(diǎn)名</param> /// <param name="value">節(jié)點(diǎn)值</param> /// public void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value) { //創(chuàng)建對(duì)應(yīng)Xml節(jié)點(diǎn)元素 XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null); node.InnerText = value; parentNode.AppendChild(node); }
<?xml version="1.0" encoding="utf-8"?> <books> <book> <author>追逐時(shí)光者</author> <title>XML學(xué)習(xí)教程</title> <publisher>時(shí)光出版社</publisher> </book> </books>
這次我們是在上一次新建的XML文件中做操作,在book二級(jí)節(jié)點(diǎn)下添加一個(gè)新的節(jié)點(diǎn)名為publishdate(發(fā)布時(shí)間),該節(jié)點(diǎn)的value為2022-03-26。
private static void AppendNode() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D://xmlSampleCreateFile.xml");//加載Xml文件 XmlNode root = xmlDoc.SelectSingleNode("books/book");//選擇要添加子節(jié)點(diǎn)的book節(jié)點(diǎn) //創(chuàng)建一個(gè)新的Xml節(jié)點(diǎn)元素 XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, "publishdate", null); node.InnerText = "2022-03-26"; root.AppendChild(node);//將創(chuàng)建的item子節(jié)點(diǎn)添加到items節(jié)點(diǎn)的尾部 xmlDoc.Save("D://AppendNodeFile.xml");//保存修改的Xml文件內(nèi)容 }
<?xml version="1.0" encoding="utf-8"?> <books> <book> <author>追逐時(shí)光者</author> <title>XML學(xué)習(xí)教程</title> <publisher>時(shí)光出版社</publisher> <publishdate>2022-03-26</publishdate> </book> </books>
這次我們是在第一次新建的XML文件中做操作,把在book二級(jí)節(jié)點(diǎn)下的author的內(nèi)容改成:大姚同學(xué)
private static void UpdateXml() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D://xmlSampleCreateFile.xml");//加載Xml文件 XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查找要修改的節(jié)點(diǎn) XmlNodeList xmlNodeList = xns.ChildNodes;//取出book節(jié)點(diǎn)下所有的子節(jié)點(diǎn) foreach (XmlNode xmlNode in xmlNodeList) { XmlElement xmlElement = (XmlElement)xmlNode;//將節(jié)點(diǎn)轉(zhuǎn)換一下類型 if (xmlElement.Name=="author")//判斷該子節(jié)點(diǎn)是否是要查找的節(jié)點(diǎn) { xmlElement.InnerText = "大姚同學(xué)";//設(shè)置新值 break; } } xmlDoc.Save("D://UpdateXml.xml");//保存修改的Xml文件內(nèi)容 }
<?xml version="1.0" encoding="utf-8"?> <books> <book> <author>大姚同學(xué)</author> <title>XML學(xué)習(xí)教程</title> <publisher>時(shí)光出版社</publisher> </book> </books>
這次我們是在第一次新建的XML文件中做操作,刪除author節(jié)點(diǎn)。
private static void DeleteXmlNode() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D://xmlSampleCreateFile.xml");//加載Xml文件 XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查找要?jiǎng)h除的根節(jié)點(diǎn) #region 刪除author節(jié)點(diǎn) var delNode = xmlDoc.SelectSingleNode("books/book/" + "author"); xns.RemoveChild(delNode); #endregion xmlDoc.Save("D://DeleteXmlNode.xml");//保存操作后的Xml文件內(nèi)容 }
這次我們是在第一次新建的XML文件中做操作,清空author節(jié)點(diǎn)下的數(shù)據(jù)。
private static void ClearDataXmlNode() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("D://xmlSampleCreateFile.xml");//加載Xml文件 XmlNode xns = xmlDoc.SelectSingleNode("books/book");//查找要?jiǎng)h除的根節(jié)點(diǎn) #region 清空author節(jié)點(diǎn)下的數(shù)據(jù) XmlNodeList xmlNodeList = xns.ChildNodes;//取出book節(jié)點(diǎn)下所有的子節(jié)點(diǎn) foreach (XmlNode xmlNode in xmlNodeList) { XmlElement xmlElement = (XmlElement)xmlNode;//將節(jié)點(diǎn)轉(zhuǎn)換一下類型 if (xmlElement.Name == "author")//判斷該子節(jié)點(diǎn)是否是要查找的節(jié)點(diǎn) { //清空author節(jié)點(diǎn)下的數(shù)據(jù) xmlElement.RemoveAll();//刪除該節(jié)點(diǎn)的全部?jī)?nèi)容 } } #endregion xmlDoc.Save("D://ClearDataXmlNode.xml");//保存操作后的Xml文件內(nèi)容 }
“C#中XML文件內(nèi)容增刪改查的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。