最近的一个项目中要操作XML文件。
一下为本人的一点笔记,提供操作XML的一些简单方法。希望能对大家有点帮助。
C#写XML文件:(感觉这样写XML很好玩,很简单。)
protected void WriteXml(string filePath)
{
XmlTextWriter _textWriter = new XmlTextWriter(Server.MapPath(filePath), System.Text.Encoding.Default);
_textWriter.Formatting = Formatting.Indented;
_textWriter.WriteStartDocument(true);
_textWriter.WriteStartElement("sockets");
_textWriter.WriteStartElement("socket");
_textWriter.WriteStartElement("cityName");
_textWriter.WriteString("测试");
_textWriter.WriteEndElement();
_textWriter.WriteStartElement("preIpEndPoint");
_textWriter.WriteString("127.0.0.1:81");
_textWriter.WriteEndElement();
_textWriter.WriteStartElement("backIpEndPoint");
_textWriter.WriteString("127.0.0.1:82");
_textWriter.WriteEndElement();
_textWriter.WriteStartElement("ruleVersion");
_textWriter.WriteString("version204");
_textWriter.WriteEndElement();
_textWriter.WriteStartElement("operateType");
_textWriter.WriteString("add");
_textWriter.WriteEndElement();
_textWriter.WriteEndElement();
_textWriter.WriteEndDocument();
_textWriter.Flush();
_textWriter.Close();
}
用DataTable装载XML数据(这个是网上看到的,感觉是最简单的方法了)
protected DataTable GetSockets()
{
string _directoryPath_ = "~/xml";
DataTable _dt_ = new DataTable() ;
if (Directory.Exists(Server.MapPath(_directoryPath_)))
{
string _filePath_ = "~/xml/Sockets.xml";
if (File.Exists(Server.MapPath(_filePath_)))
{
DataSet _ds_ = new DataSet();
_ds_.ReadXml(Server.MapPath(_filePath_));
_dt_ = _ds_.Tables[0];
}
else
{
WriteXml(_filePath_);
}
}
else
{
Directory.CreateDirectory(Server.MapPath(_directoryPath_));
}
return _dt_;
}
修改XML文件中的数据
protected void UpdateXMLFile(string filePath, string pk, Operate operation)
{
XmlDocument _doc_ = new XmlDocument();
_doc_.Load(filePath);
XmlNodeList _list_ = _doc_.DocumentElement.ChildNodes;
foreach (XmlNode item in _list_)
{
if (item.FirstChild.InnerText == pk)
{
item.ChildNodes[1].InnerText = operation.CityName;
item.ChildNodes[2].InnerText = operation.PreIpEndPoint;
item.ChildNodes[3].InnerText = operation.BackIpEndPoint;
item.ChildNodes[4].InnerText = operation.Version.ToString();
item.ChildNodes[5].InnerText = operation.Type.ToString();
_doc_.Save(filePath);//这里需要保存的,不然只是在内存中修改了
return;//一旦修改完毕后,就不需要再往下循环了。避免不必要的性能浪费
}
}
}
本文介绍了使用 C# 进行 XML 文件的基本操作方法,包括如何编写 XML 文件、如何使用 DataTable 对象读取 XML 数据以及如何更新 XML 文件中的数据。
404

被折叠的 条评论
为什么被折叠?



