1. 要對XML文件進行操作,須要聲明以下命名空間:
using System.Xml;
2. 檢查指定XML文件是否存在
System.IO.File.Exists(文件路徑及名稱);
3. 利用C#編程創建 XML文件
代碼一:
XmlDocument xmldoc = new XmlDocument();
XmlNode xmlnode;
XmlElement xmlelem;
XmlElement xmlelem2;
XmlText xmltext;
//加入XML的聲明段落
xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
xmlnode.InnerText+=" encoding=\"GB2312\"";
xmldoc.AppendChild(xmlnode);
//加入一個根元素
xmlelem = xmldoc.CreateElement("", "ROOT", "");
xmltext = xmldoc.CreateTextNode("Root Text");
xmlelem.AppendChild(xmltext);
xmldoc.AppendChild(xmlelem);
//加入另外一個元素
xmlelem2 = xmldoc.CreateElement("SampleElement");
xmlelem2 = xmldoc.CreateElement("","SampleElement","");
xmltext = xmldoc.CreateTextNode("The text of the sample element");
xmlelem2.AppendChild(xmltext);
xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);
//保存創建好的XML文檔
try
{
xmldoc.Save("data.xml");
}
catch (Exception f)
{
//顯示錯誤信息
MessageBox.Show(f.Message);
}
//Console.ReadLine();
這段代碼在win2003ser+vs2005環境下測試成功,但是XML文件格式很亂。
代碼二:
string FileName =Application.StartupPath+"\\phone.xml";
XmlTextWriter objXmlTextWriter = new XmlTextWriter(FileName,Encoding.Default);
objXmlTextWriter.Formatting = Formatting.Indented;
objXmlTextWriter.Indentation = 6;
objXmlTextWriter.WriteStartDocument();
objXmlTextWriter.WriteStartElement("", "PhoneBook", "");
objXmlTextWriter.WriteStartElement("", "Name", "");
objXmlTextWriter.WriteString("加菲爾德");
objXmlTextWriter.WriteEndElement();
objXmlTextWriter.WriteStartElement("", "Number", "");
objXmlTextWriter.WriteString("5555555");
objXmlTextWriter.WriteEndElement();
objXmlTextWriter.WriteStartElement("", "City", "");
objXmlTextWriter.WriteString("紐約");
objXmlTextWriter.WriteEndElement();
objXmlTextWriter.WriteStartElement("", "DateOfBirth", "");
objXmlTextWriter.WriteString("26/10/1978");
objXmlTextWriter.WriteEndElement();
objXmlTextWriter.WriteEndElement();
objXmlTextWriter.WriteEndDocument();
objXmlTextWriter.Flush();
objXmlTextWriter.Close();
這段代碼在win2003ser+vs2005環境下測試通過,出來的效果很好,也比較容易理解,
4. 讀取、修改XML文件的某個節點的值
代碼一:
/****************************************************************
<?xml version="1.0" encoding="utf-8" ?>
<LocalEcoTypeData type="User_Anonymous" url="http://url=1"/>
<LocalDemData type="User_Anonymous" url="http://url=2."/>
<NasaDemData type="User_Login" url="http://url=3"/>
<NasaEcoTypeData type="User_Login" url="http://url=4"/>
****************************************************************/
private XmlTextReader xmlread;
private string XmlUrl = "..\\..\\*.xml";
xmlread = new XmlTextReader(XmlUrl);
xmlread.WhitespaceHandling = WhitespaceHandling.None;
while (xmlread.Read())
{
switch (xmlread.NodeType)
{
case XmlNodeType.Element:
if (xmlread.Name != "source" &&
xmlread.Name != "configuration" &&
xmlread["type"] == utype)
lstboxSource.Items.Add(xmlread.Name + " url:" + xmlread["url"]);
case XmlNodeType.EndElement:
代碼二:
string path = "phone.xml";
XmlDocument doc = new XmlDocument();
doc.Load(path);
//讀所有節點表
XmlNamespaceManager xnm = new XmlNamespaceManager(doc.NameTable);
//讀取節點值
XmlNode node = doc.SelectSingleNode("/PhoneBook/Name", xnm); //node.InnerText 就是讀取出來的值
//修改節點值
node.InnerText="要修改的內容";
//保存修改後的內容
doc.Save(path);