C#向XML中添加资料的方法
主要3种方法
DataSet.ReadXML 操作方便
XMLDocument 操作方便
XMLReader,XMLWriter 操作复杂 效率最高
使用XmlDocument是最简单的,不过效率不高,
使用XmlReader和XmlWriter处理效率比较高,不过不够灵活,实现相对复杂。
使用DataSet或DataTable只是一种投机取巧的方式,不适合于复杂的Xml文档。
_xmlD = new XmlDocument(); _xmlD.Load(@"D:/Project/20080303-01/20080303-01/CSDN.xml"); XmlElement _xe = _xmlD.CreateElement("User"); //得到最上面的结点类似顶级结点 XmlNode _topxn = _xmlD.SelectSingleNode("dbGuest"); XmlElement _xeName = _xmlD.CreateElement("Name"); _xeName.InnerText=(this.txtNewName.Text !="")?this.txtNewName.Text:"Kevin"; XmlAttribute _xmlA = _xmlD.CreateAttribute("Writer"); _xmlA.InnerText = "Kevin"; _xeName.Attributes.Append(_xmlA); _xe.AppendChild(_xeName); XmlElement _xeCity = _xmlD.CreateElement("City"); _xeCity.InnerText =(this.txtNewCity.Text !="")?this.txtNewCity.Text:"Xiamen"; _xe.AppendChild(_xeCity); XmlElement _xeEmail = _xmlD.CreateElement("Email"); _xeEmail.InnerText =(this.txtNewEmail.Text !="")?this.txtNewEmail.Text:"zzyhuian@163.com"; _xe.AppendChild(_xeEmail); XmlElement _xeTime = _xmlD.CreateElement("Time"); _xeTime.InnerText = DateTime.Now.ToString(); _xe.AppendChild(_xeTime); _topxn.AppendChild(_xe); _xmlD.Save(@"D:/Project/20080303-01/20080303-01/Kevin.xml"); MessageBox.Show("子结点添加成功!");XmlDocument doc = new XmlDocument();
doc.LoadXml(
"<?xml version=/"1.0/" encoding=/"utf-8/" ?>" +
"<root>" +
" <name> King of Kings </name>" +
"</root>");
XmlElement idElement = doc.CreateElement("id"); //
idElement.AppendChild(doc.CreateTextNode("Alex")); //
doc.SelectSingleNode("root").AppendChild(idElement); //
MessageBox.Show( doc.OuterXml );
using System;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Threading;
using System.Collections;
using System.Data;
using System.Xml;
using System.Management;
using System.Net;
namespace Zhzuo
{
class ZZConsole
{
[STAThread]
static void Main(string[] args)
{
string strXml="
"
+" "
+" "
+"
1111
"
+"
2222
"
+"
2004
"
+"
20040302
"
+" "
+" "
+" "
+" 01
"
+"
深圳
"
+"
0
"
+"
110258740824082
"
+" "
+" ";
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXml);
string vv;
XmlNodeList myNodes = doc.GetElementsByTagName("Version");
vv = myNodes[0].InnerText;
//修改
myNodes[0].InnerText = "123455";
Console.WriteLine(vv);
myNodes = doc.SelectNodes("//Version");
vv = myNodes[0].InnerText;
Console.WriteLine(vv);
//修改
myNodes[0].InnerText = "67890";
doc.Save("d://text.xml");
Console.ReadLine();
}
}
}