XML简单操作(C#)
实现效果如下:
新增文件时的xml如下
<?xml version="1.0" encoding="UTF-8"?>
<Setting>
<ServerSetting>
<ServerIP>192.168.3.46</ServerIP>
<ServerPort Name="端口号">19888</ServerPort>
</ServerSetting>
</Setting>
修改文件时的xml结构如下:
<?xml version="1.0" encoding="UTF-8"?>
<Setting>
<ServerSetting>
<ServerIP>192.168.3.31</ServerIP>
<ServerPort Name="kkName" tID="001">4031</ServerPort>
</ServerSetting>
</Setting>
C#主要操作代码如下:
string fileUrl = System.Windows.Forms.Application.StartupPath + @"\XX.xml";
//判断文件是否存在
if (File.Exists(fileUrl))
{
//文件存在,则修改值
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fileUrl);
XmlNode xmlNodeIP = xmlDoc.SelectSingleNode("//ServerIP");//查找<ServerIP>的第一个节点
xmlNodeIP.InnerText = "192.168.3.31";
XmlNode xmlNodePort = xmlDoc.SelectSingleNode("//ServerPort");//查找<ServerPort>的第一个节点
xmlNodePort.InnerText = "4031";
xmlNodePort.Attributes["Name"].Value = "kkName"; //修改现有属性的值
//增加节点的属性
XmlAttribute nodeAttribute = xmlDoc.CreateAttribute("tID"); //修改节点,增加一个"tID"属性
nodeAttribute.Value = "001";
xmlNodePort.Attributes.Append(nodeAttribute);
//保存文件
try
{
xmlDoc.Save(fileUrl);
MessageBox.Show("设置已保存.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
//文件不存在,则进行创建
XmlDocument xmlDoc = new XmlDocument();
//加入XML的声明段落
xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));
//创建一个根节点(一级)
XmlElement root = xmlDoc.CreateElement("Setting");
xmlDoc.AppendChild(root);
XmlElement rootServer = xmlDoc.CreateElement("ServerSetting");
root.AppendChild(rootServer);
//ServerIP
XmlElement xmlelemServerIP = xmlDoc.CreateElement("ServerIP");
XmlText xmltextIP = xmlDoc.CreateTextNode("192.168.3.46");
xmlelemServerIP.AppendChild(xmltextIP);
xmlDoc.ChildNodes.Item(1).ChildNodes[0].AppendChild(xmlelemServerIP);
//ServerPort
XmlElement xmlelemPort = xmlDoc.CreateElement("ServerPort");
xmlelemPort.InnerText = "19888";//设置文本节点
xmlelemPort.SetAttribute("Name", "端口号");
rootServer.AppendChild(xmlelemPort);//添加到<rootServer>节点中
//保存文件
try
{
xmlDoc.Save(fileUrl);
MessageBox.Show("设置已保存.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}