場景 Winform中自定義xml配置文件後對節點進行讀取與寫入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100532137 在上面已經對xml配置文件對節點能進行讀取與寫入之後 ,實現對節點元素的 添加與刪除。 關註公眾 ...
場景
Winform中自定義xml配置文件後對節點進行讀取與寫入:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100532137
在上面已經對xml配置文件對節點能進行讀取與寫入之後 ,實現對節點元素的
添加與刪除。
關註公眾號
霸道的程式猿
獲取編程相關電子書、教程推送與免費下載。
大量編程視頻教程:https://space.bilibili.com/164396311
xml配置文件如下
<?xml version="1.0" encoding="utf-8" ?> <Configure> <!--Y軸集合--> <YAxis> <!--第一條Y軸--> <YAxi> <no>1</no> <title>溫度</title> <color>black</color> <min>-1500</min> <max>1500</max> </YAxi> <!--第二條Y軸--> <YAxi> <no>2</no> <title>電壓</title> <color>black</color> <min>-1500</min> <max>1500</max> </YAxi> </YAxis> </Configure>
實現
添加節點
在工具類中新增方法
public static void addNode() { //獲取可執行文件的路徑-即bin目錄下的debug或者release目錄 string context = System.Windows.Forms.Application.StartupPath; string path = String.Concat(context, @"\config\YAxisSet.xml"); XmlDocument xml = new XmlDocument(); //打開一個xml try { xml.Load(path); //選擇匹配 XPath 表達式的第一個 XmlNode XmlNode Configure = xml.SelectSingleNode("Configure/YAxis"); //讀取節點數據 if (Configure != null) { XmlNode yaxi = xml.CreateNode(XmlNodeType.Element, "YAxi", null); //創建No節點 XmlNode no = xml.CreateNode(XmlNodeType.Element, "YAxi", null); no.InnerText = "3"; yaxi.AppendChild(no); //創建title節點 XmlNode title = xml.CreateNode(XmlNodeType.Element, "title", null); title.InnerText = "badao"; yaxi.AppendChild(title); //創建color節點 XmlNode color = xml.CreateNode(XmlNodeType.Element, "color", null); color.InnerText = "red"; yaxi.AppendChild(color); //創建min節點 XmlNode min = xml.CreateNode(XmlNodeType.Element, "min", null); min.InnerText = "-1600"; yaxi.AppendChild(min); //創建max節點 XmlNode max = xml.CreateNode(XmlNodeType.Element, "max", null); max.InnerText = "1600"; yaxi.AppendChild(max); //將yaxi追加到YAxis Configure.AppendChild(yaxi); XmlNodeList nodelist = xml.SelectNodes("Configure/YAxis/YAxi"); xml.Save(path); MessageBox.Show("nodelist[0]是:" + nodelist[0].ChildNodes[1].InnerText); MessageBox.Show("nodelist[1]是:" + nodelist[1].ChildNodes[1].InnerText); MessageBox.Show("nodelist[2]是:" + nodelist[2].ChildNodes[1].InnerText); } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
註:
主要通過XmlDocument.CreateNode來創建節點。
第一個參數是節點類型,Element代表是節點。
第二個參數Name屬性。
第三個參數是命名空間,這裡為null
以上效果就是完整的添加了一條Y軸以及相關屬性。
然後新建一個按鈕,在點擊事件中調用工具類中的方法。
private void simpleButton3_Click(object sender, EventArgs e) { ConfigAccessUtils.addNode(); }
效果
添加之前
點擊添加按鈕後
添加之後
刪除節點
工具類中新建方法
public static void removeNode() { //獲取可執行文件的路徑-即bin目錄下的debug或者release目錄 string context = System.Windows.Forms.Application.StartupPath; string path = String.Concat(context, @"\config\YAxisSet.xml"); XmlDocument xml = new XmlDocument(); //打開一個xml try { xml.Load(path); //選擇匹配 XPath 表達式的第一個 XmlNode XmlNode Configure = xml.SelectSingleNode("Configure/YAxis"); //讀取節點數據 if (Configure != null) { XmlNodeList nodelist = xml.SelectNodes("Configure/YAxis/YAxi"); MessageBox.Show("刪除之前count是:" + nodelist.Count); //將第三個節點刪除 Configure.RemoveChild(Configure.ChildNodes[2]); nodelist = xml.SelectNodes("Configure/YAxis/YAxi"); xml.Save(path); MessageBox.Show("刪除之後count是:" + nodelist.Count); } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
註:
是通過XmlNode.RemoveChild(XmlNode)來實現刪除子節點的。
SelectNodes可以獲得所有配置的節點。
效果
刪除之前
刪除之後