这种形式可以修改任何一个节点:
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");
思想:
声明一个节点对象,让它等于跟节点的子节点,这时候可以对跟节点的子节点(称为二级节点)的内容进行修改。
此时还可以继续声明一个节点给它赋值二级节点的子节点,于是就可以修改三级节点的内容,以此类推……