這種形式可以修改任何一個節點:
XmlDocument doc = new XmlDocument(); doc.Load("Event.xml"); XmlElement events = doc.DocumentElement; //跟節點 XmlNode xn = events; foreach (XmlNode node in xn.ChildNodes) //遍歷跟節點的子節點 { if (node["事件名"].InnerText == textBox1.Text) //對具有特定內容的節點進行修改 { XmlNode xnStartTime = node["開始時間"]; //node為跟節點的子節點,node["開始時間"]也既是xnStartTime為跟節點的子節點的子節點 xnStartTime["時"].InnerText = comboBox1.SelectedItem.ToString(); xnStartTime["分"].InnerText = comboBox2.SelectedItem.ToString(); XmlNode xnEndTime = node["終止時間"]; xnEndTime["時"].InnerText = comboBox4.SelectedItem.ToString(); xnEndTime["分"].InnerText = comboBox3.SelectedItem.ToString(); int height = ((Convert.ToInt32(comboBox4.Text) - Convert.ToInt32(comboBox1.Text)) * 6 + (Convert.ToInt32(comboBox3.Text) / 10 - Convert.ToInt32(comboBox2.Text) / 10))*9;
node["高度"].InnerText = Convert.ToString(height); if (radioButton1.Checked == true) { node["重要"].InnerText = "是"; } else { node["重要"].InnerText = "否"; } if (radioButton4.Checked == true) { node["緊迫"].InnerText = "是"; } else { node["緊迫"].InnerText = "否"; } } } doc.Save("Event.xml");
思想:
聲明一個節點對象,讓它等於跟節點的子節點,這時候可以對跟節點的子節點(稱為二級節點)的內容進行修改。
此時還可以繼續聲明一個節點給它賦值二級節點的子節點,於是就可以修改三級節點的內容,以此類推……