我的XML文件是这样的:
接下来我们对该XML文件进行操纵
XmlElement xesub1 = xmlDoc.CreateElement("subRoot1");
xesub1.InnerText = "Default";//设置节点文本
xe.AppendChild(xesub1);//添加到<root4>节点中
XmlElement xesub2 = xmlDoc.CreateElement("subRoot2");
xesub2.InnerText = "Default";
xe.AppendChild(xesub2);
XmlElement xesub3 = xmlDoc.CreateElement("subRoot3");
xesub3.InnerText = "Default";
xe.AppendChild(xesub3);
root.AppendChild(xe);//添加到根节点
xmlDoc.Save(strXmlFilePath);//保存最新XML文件
}
/// <summary>
/// 删除root4节点
/// </summary>
private void btnRemove_Click(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strXmlFilePath);
XmlNode root = xmlDoc.DocumentElement;
XmlNodeList nodeList = xmlDoc.SelectSingleNode("configuration").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xn in nodeList)
{
if (xn.Name == "root4")
{
//xn.RemoveAll(); //删除该节点下的全部内容
root.RemoveChild(xn); //移除该子节点
break;
}
}
xmlDoc.Save(strXmlFilePath);//保存最新XML文件
}
/// <summary>
/// 修改root3节点下子节点subRoot2的文本
/// </summary>
private void btnUpdate_Click(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strXmlFilePath);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("configuration").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xn in nodeList)//遍历所有子节点
{
if (xn.Name == "root3")
{
XmlNodeList nls = xn.ChildNodes;//继续获取xn子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
if (xn1.Name == "subRoot2")//找到
{
xn1.InnerText = "newValue";//修改
break;
}
}
break;
}
}
xmlDoc.Save(strXmlFilePath);//保存最新XML文件
}
/// <summary>
/// 查看root3节点下子节点subRoot2的文本
/// </summary>
private void btnQuery_Click(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(strXmlFilePath);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("configuration").ChildNodes;//获取根节点的所有子节点
foreach (XmlNode xn in nodeList)//遍历所有子节点
{
if (xn.Name == "root3")
{
XmlNodeList nls = xn.ChildNodes;//继续获取xn子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
if (xn1.Name == "subRoot2")//找到
{
label1.Text = xn1.InnerText;
break;
}
}
break;
}
}
}