使用C#代码读写XML文件
一、创建XML文件
private void CreateXml()
{
//创建XML文档实例
XmlDocument xmlDoc = new XmlDocument();
//创建根节点
XmlElement root = xmlDoc.CreateElement("config");
//创建子节点
XmlElement _child1 = xmlDoc.CreateElement("name1");
//设置节点中的数值
_child1.InnerText = "添加的内容1";
root.AppendChild(_child1);
//创建子节点
XmlElement _child2 = xmlDoc.CreateElement("name2");
//设置节点中的数值
_child2.InnerText = "添加的内容2";
root.AppendChild(_child2);
xmlDoc.AppendChild(root);
//把XML文件保存至本地
xmlDoc.Save(XmlPath);
}
new 一个XmlDocument 对象之后,再调用Save方法, 这样就创建了一个空的XML文件了。然后就是在XML中添加内容,创建的XmlElement通过AppendChild添加到XML中。同理,你也可在子节点下继续创建子节点,可以一直这样添加下去(可以,但是没必要创建太多)。
运行结果:
<config>
<name1>添加的内容1</name1>
<name2>添加的内容2</name2>
</config>
如果你想在你的XML文件中通过代码插入备注,你可以这样写:
//创建注释
XmlComment _com = xmlDoc.CreateComment("注释内容");
root.AppendChild(_com);
运行结果:
<config>
<!--注释内容-->
<name1>添加的内容1</name1>
<name2>添加的内容2</name2>
</config>
二、添加XML元素
private void AddXML()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(XmlPath);
XmlNode root = xmlDoc.SelectSingleNode("config");
//新加节点
XmlElement elmNew = xmlDoc.CreateElement("name3");
elmNew.InnerText = "新添加的内容";
root.AppendChild(elmNew);
xmlDoc.Save(XmlPath);
}
添加元素也是先获得XmlDocument对象,只是需要同过Load方法读取已经有的XML文件,再使用SelectSingleNode方法找到root节点,新增子节点和创建子节点是一样的,最后将子节点添加到根节点下,然后保存XML文件。
运行结果:
<config>
<!--注释内容-->
<name1>添加的内容1</name1>
<name2>添加的内容2</name2>
<name3>添加的内容</name3>
</config>
三、XML文件数据的读取
Dictionary<string, string> _testDic = new Dictionary<string, string>();
private void ReadXML()
{
_testDic.Clear();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(XmlPath);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("config").ChildNodes;
//遍历每一个子节点
foreach (var xe in nodeList)
{
//过滤注释
XmlElement _temp = null;
if (xe is XmlElement)
{
_temp = xe as XmlElement;
}
else
{
continue;
}
if (_testDic.ContainsKey(_temp.Name))
{
continue;
}
_testDic.Add(_temp.Name, _temp.InnerText);
}
LogXML();
}
private void LogXML()
{
foreach (var item in _testDic)
{
Debug.Log(string.Format("key:{0},value:{1}",item.Key,item.Value));
}
}
读取XML的内容是根据你创建的XML文件所决定的,你怎样创建数据结构的,就怎么取数据。我想要存取的数据比较简单,所以就用字典来存数据了。另外,如果你的XML文件里面有注释,记得判断类型。
运行结果: