XML(可扩展标记语言)是一种广泛应用于Web服务、数据交换和文档存储的标记语言。XmlDocument是.NET框架中用于操作XML文档的类,它提供了丰富的方法和属性,使得我们可以方便地创建、增加、删除、修改XML文档中的内容。
下面我们将通过一个简单的示例,来说明如何使用C#中的XmlDocument类完成XML文件的创建、增加、删除、修改等操作。
创建一个Xml
C#private void btnCreate_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
//创建类型声明节点
XmlNode node = doc.CreateXmlDeclaration("1.0", "utf-8", "");
doc.AppendChild(node);
//创建Xml根节点
XmlNode root =doc.CreateElement("Users");
doc.AppendChild(root);
//创建子节点
XmlNode item =doc.CreateElement("User");
root.AppendChild(item);
XmlNode it = null;
//创建对应Xml节点元素
it = doc.CreateNode(XmlNodeType.Element, "name", null);
it.InnerText = "刘备";
item.AppendChild(it);
it = doc.CreateNode(XmlNodeType.Element, "age", null);
it.InnerText = "48";
item.AppendChild(it);
//创建子节点
item = doc.CreateElement("User");
root.AppendChild(item);
it = doc.CreateNode(XmlNodeType.Element, "name", null);
it.InnerText = "关羽";
item.AppendChild(it);
it = doc.CreateNode(XmlNodeType.Element, "age", null);
it.InnerText = "45";
item.AppendChild(it);
//创建子节点
item = doc.CreateElement("User");
root.AppendChild(item);
it = doc.CreateNode(XmlNodeType.Element, "name", null);
it.InnerText = "张飞";
item.AppendChild(it);
it = doc.CreateNode(XmlNodeType.Element, "age", null);
it.InnerText = "42";
item.AppendChild(it);
doc.Save("./users.xml");
}
生成文件
XML<?xml version="1.0" encoding="utf-8"?>
<Users>
<User>
<name>刘备</name>
<age>48</age>
</User>
<User>
<name>关羽</name>
<age>45</age>
</User>
<User>
<name>张飞</name>
<age>42</age>
</User>
</Users>
修改Xml节点
C#private void btnModify_Click(object sender, EventArgs e)
{
XmlDocument doc=new XmlDocument();
//加载Xml文件
doc.Load("./users.xml");
//查找要修改的节点
XmlNode node = doc.SelectNodes("Users/User")[1];
//取出user节点下所有的子节点
XmlNodeList nodelist = node.ChildNodes;
foreach (var item in nodelist)
{
//将节点转换一下类型
XmlElement element = (XmlElement)item;
//判断该子节点是否是要查找的节点
if (element.Name == "name")
{
//设置新值
element.InnerText = "刘邦";
break;
}
}
//保存修改的Xml文件内容
doc.Save("./users.xml");
}
删除节点
C#private void btnDelete_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
//加载Xml文件
doc.Load("./users.xml");
//查找要删除的根节点
XmlNode node = doc.SelectNodes("Users/User")[1];
//删除age节点
var item = node.ChildNodes[1];
node.RemoveChild(item);
//保存修改的Xml文件内容
doc.Save("./users.xml");
}
清空指定节点
C#private void btnClear_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
//加载Xml文件
doc.Load("./users.xml");
//清空age节点下的数据
XmlNode node = doc.SelectNodes("Users/User")[1];
//删除age节点
var nodelist = node.ChildNodes;
foreach (var item in nodelist)
{
XmlElement element= (XmlElement)item;
if (element.Name == "age")
{
element.RemoveAll();
}
}
//保存修改的Xml文件内容
doc.Save("./users.xml");
}
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!