C# 對(duì)XML基本操作代碼總結(jié)
更新時(shí)間:2011年10月10日 19:38:05 作者:
C# 對(duì)XML基本操作包括讀取節(jié)點(diǎn)的數(shù)據(jù),添加節(jié)點(diǎn)。讀取節(jié)點(diǎn)屬性,修改節(jié)點(diǎn)屬性等
具體如下:
XML文件:文件在MyDocument文件夾下
<?xml version="1.0" encoding="utf-8"?>
<PersonF xmlns="" Name="(test)work hard work smart!">
<person Name="Person1">
<ID>1</ID>
<Name>XiaoA</Name>
<Age>59</Age>
</person>
<person Name="Person2">
<ID>2</ID>
<Name>XiaoB</Name>
<Age>29</Age>
</person>
<person Name="Person3">
<ID>3</ID>
<Name>XiaoC</Name>
<Age>103</Age>
</person>
<person Name="Person4">
<ID>4</ID>
<Name>XiaoD</Name>
<Age>59</Age>
</person>
</PersonF>
Code:說明都在注釋里。
void TestXML()
{
XmlDocument doc = new XmlDocument();
string path = "http://www.dbjr.com.cn/MyDocument/Person.xml";
try
{
doc.Load(path);
//1、讀取單個(gè)節(jié)點(diǎn)的數(shù)據(jù)
XmlNode node = doc.SelectSingleNode("PersonF");
//2、讀取多個(gè)節(jié)點(diǎn)的數(shù)據(jù)
XmlNodeList nodeList1 = doc.SelectNodes("PersonF/person");
//3.1 讀取具體節(jié)點(diǎn)的具體值 如:屬性為Person2的第二個(gè)節(jié)點(diǎn)Name的InnerText
XmlNodeList nodeList = doc.DocumentElement.GetElementsByTagName("person");
foreach (XmlNode node2 in nodeList1) //當(dāng)然也能用nodeList的值
{
if (node2.Attributes["Name"].InnerText == "Person2")
{
Console.WriteLine(node2.ChildNodes[1].InnerText);
}
}
//3.2 讀取ID為2所在的節(jié)點(diǎn)第二個(gè)子節(jié)點(diǎn)Name的InnerText
XmlNode node3 = doc.SelectSingleNode("PersonF/person[ID=2]");
string strNode3 = node3.ChildNodes[1].InnerText;
//3.3利用下面的方法可以找到ID為2的節(jié)點(diǎn)
XmlNodeList nodeList2 = doc.SelectNodes("http://person//ID");
XmlNode node4 = null;
foreach (XmlNode node5 in nodeList2)
{
if (node5.InnerText == "2")
{
node4 = node5;
break;
}
}
Console.WriteLine(node4.InnerText);
//4、讀取節(jié)點(diǎn)的屬性
string Name = node.Attributes["Name"].InnerText;
//5 修改節(jié)點(diǎn)的屬性
node.Attributes["Name"].InnerText = "work hard work smart!";
doc.Save(path);
//6 添加自定義的節(jié)點(diǎn)
XmlTextReader reader = new XmlTextReader(path);
XmlElement root = doc.DocumentElement;//獲取根節(jié)點(diǎn)
XmlElement tagOuter = doc.CreateElement("person");
XmlElement tagIN = doc.CreateElement("Name");
tagIN.InnerText = "work hard work smart!";
tagOuter.AppendChild(tagIN);
root.AppendChild(tagOuter);//添加tagOuter到XML文件的最后
reader.Close();
doc.Save(path);
}
catch (System.Exception e)
{
throw new Exception(e.Message);
}
}
XML文件:文件在MyDocument文件夾下
復(fù)制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<PersonF xmlns="" Name="(test)work hard work smart!">
<person Name="Person1">
<ID>1</ID>
<Name>XiaoA</Name>
<Age>59</Age>
</person>
<person Name="Person2">
<ID>2</ID>
<Name>XiaoB</Name>
<Age>29</Age>
</person>
<person Name="Person3">
<ID>3</ID>
<Name>XiaoC</Name>
<Age>103</Age>
</person>
<person Name="Person4">
<ID>4</ID>
<Name>XiaoD</Name>
<Age>59</Age>
</person>
</PersonF>
Code:說明都在注釋里。
復(fù)制代碼 代碼如下:
void TestXML()
{
XmlDocument doc = new XmlDocument();
string path = "http://www.dbjr.com.cn/MyDocument/Person.xml";
try
{
doc.Load(path);
//1、讀取單個(gè)節(jié)點(diǎn)的數(shù)據(jù)
XmlNode node = doc.SelectSingleNode("PersonF");
//2、讀取多個(gè)節(jié)點(diǎn)的數(shù)據(jù)
XmlNodeList nodeList1 = doc.SelectNodes("PersonF/person");
//3.1 讀取具體節(jié)點(diǎn)的具體值 如:屬性為Person2的第二個(gè)節(jié)點(diǎn)Name的InnerText
XmlNodeList nodeList = doc.DocumentElement.GetElementsByTagName("person");
foreach (XmlNode node2 in nodeList1) //當(dāng)然也能用nodeList的值
{
if (node2.Attributes["Name"].InnerText == "Person2")
{
Console.WriteLine(node2.ChildNodes[1].InnerText);
}
}
//3.2 讀取ID為2所在的節(jié)點(diǎn)第二個(gè)子節(jié)點(diǎn)Name的InnerText
XmlNode node3 = doc.SelectSingleNode("PersonF/person[ID=2]");
string strNode3 = node3.ChildNodes[1].InnerText;
//3.3利用下面的方法可以找到ID為2的節(jié)點(diǎn)
XmlNodeList nodeList2 = doc.SelectNodes("http://person//ID");
XmlNode node4 = null;
foreach (XmlNode node5 in nodeList2)
{
if (node5.InnerText == "2")
{
node4 = node5;
break;
}
}
Console.WriteLine(node4.InnerText);
//4、讀取節(jié)點(diǎn)的屬性
string Name = node.Attributes["Name"].InnerText;
//5 修改節(jié)點(diǎn)的屬性
node.Attributes["Name"].InnerText = "work hard work smart!";
doc.Save(path);
//6 添加自定義的節(jié)點(diǎn)
XmlTextReader reader = new XmlTextReader(path);
XmlElement root = doc.DocumentElement;//獲取根節(jié)點(diǎn)
XmlElement tagOuter = doc.CreateElement("person");
XmlElement tagIN = doc.CreateElement("Name");
tagIN.InnerText = "work hard work smart!";
tagOuter.AppendChild(tagIN);
root.AppendChild(tagOuter);//添加tagOuter到XML文件的最后
reader.Close();
doc.Save(path);
}
catch (System.Exception e)
{
throw new Exception(e.Message);
}
}
您可能感興趣的文章:
- C#使用XML序列化操作菜單的方法
- C#針對(duì)xml基本操作及保存配置文件應(yīng)用實(shí)例
- C#操作XML文件實(shí)例匯總
- c#操作xml文件示例
- c#操作xml幫助類分享(xml增刪改查)
- c#對(duì)xml增刪改查操作示例
- C#對(duì)XML文件的各種操作實(shí)現(xiàn)方法
- C# 操作XML文檔 使用XmlDocument類方法
- C# XML操作 代碼大全(讀XML,寫XML,更新,刪除節(jié)點(diǎn),與dataset結(jié)合等)
- asp.net(C#) Xml操作(增刪改查)練習(xí)
- c#對(duì)xml的簡(jiǎn)單操作
- C#實(shí)現(xiàn)的XML操作類實(shí)例
相關(guān)文章
深入多線程之:解析線程的交會(huì)(Thread Rendezvous)詳解
本篇文章是對(duì)線程的交會(huì)(Thread Rendezvous)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C#創(chuàng)建SQLite控制臺(tái)應(yīng)用程序詳解
這篇文章主要為大家詳細(xì)介紹了C#創(chuàng)建SQLite控制臺(tái)應(yīng)用程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07C#實(shí)現(xiàn)復(fù)制文件夾中文件到另一個(gè)文件夾的方法
這篇文章主要介紹了C#實(shí)現(xiàn)復(fù)制文件夾中文件到另一個(gè)文件夾的方法,實(shí)例分析了C#實(shí)現(xiàn)文件夾的查找、判斷及文件復(fù)制相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07C#實(shí)現(xiàn)WinForm禁止最大化、最小化、雙擊標(biāo)題欄、雙擊圖標(biāo)等操作的方法
這篇文章主要介紹了C#實(shí)現(xiàn)WinForm禁止最大化、最小化、雙擊標(biāo)題欄、雙擊圖標(biāo)等操作的方法,涉及C#使用WinForm針對(duì)窗口操作的各種常用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08基于AForge實(shí)現(xiàn)C#攝像頭視頻錄制功能
這篇文章主要為大家詳細(xì)介紹了基于AForge實(shí)現(xiàn)C#攝像頭視頻錄制功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10