XML文檔的基本操作
已知有一個XML文檔(bookstore.xml)如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberons Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
</bookstore>
1、往<bookstore>節(jié)點中插入一個<book>節(jié)點:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
XmlElement xe1=xmlDoc.CreateElement("book");//創(chuàng)建一個<book>節(jié)點
xe1.SetAttribute("genre","李贊紅");//配置該節(jié)點genre屬性
xe1.SetAttribute("ISBN","2-3631-4");//配置該節(jié)點ISBN屬性
XmlElement xesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="CS從入門到精通";//配置文本節(jié)點
xe1.AppendChild(xesub1);//添加到<book>節(jié)點中
XmlElement xesub2=xmlDoc.CreateElement("author");
xesub2.InnerText="候捷";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmlDoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<bookstore>節(jié)點中
xmlDoc.Save("bookstore.xml");
//================
結(jié)果為:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberons Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book genre="李贊紅" ISBN="2-3631-4">
<title>CS從入門到精通</title>
<author>候捷</author>
<price>58.3</price>
</book>
</bookstore>
2、修改節(jié)點:將genre屬性值為“李贊紅“的節(jié)點的genre值改為“update李贊紅”,將該節(jié)點的子節(jié)點<author>
的文本修改為“亞勝”。
XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//獲取bookstore節(jié)點的任何子節(jié)
點
foreach(XmlNode xn in nodeList)//遍歷任何子節(jié)點
{
XmlElement xe=(XmlElement)xn;//將子節(jié)點類型轉(zhuǎn)換為XmlElement類型
if(xe.GetAttribute("genre")=="李贊紅")//假如genre屬性值為“李贊紅”
{
xe.SetAttribute("genre","update李贊紅");//則修改該屬性為“update李贊紅”
XmlNodeList nls=xe.ChildNodes;//繼續(xù)獲取xe子節(jié)點的任何子節(jié)點
foreach(XmlNode xn1 in nls)//遍歷
{
XmlElement xe2=(XmlElement)xn1;//轉(zhuǎn)換類型
if(xe2.Name=="author")//假如找到
{
xe2.InnerText="亞勝";//則修改
break;//找到退出來就能夠了
}
}
break;
}
}
xmlDoc.Save("bookstore.xml");//保存。
//=================
最后結(jié)果為:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberons Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book genre="update李贊紅" ISBN="2-3631-4">
<title>CS從入門到精通</title>
<author>亞勝</author>
<price>58.3</price>
</book>
</bookstore>
3、刪除 <book genre="fantasy" ISBN="2-3631-4">節(jié)點的genre屬性,刪除 <book genre="update李贊紅"
ISBN="2-3631-4">節(jié)點。
XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{
xe.RemoveAttribute("genre");//刪除genre屬性
}
else if(xe.GetAttribute("genre")=="update李贊紅")
{
xe.RemoveAll();//刪除該節(jié)點的全部內(nèi)容
}
}
xmlDoc.Save("bookstore.xml");
//====================
最后結(jié)果為:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book ISBN="2-3631-4">
<title>Oberons Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book>
</book>
</bookstore>
4、顯示任何數(shù)據(jù)。
XmlNode xn=xmlDoc.SelectSingleNode("bookstore");
XmlNodeList xnl=xn.ChildNodes;
foreach(XmlNode xnf in xnl)
{
XmlElement xe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//顯示屬性值
Console.WriteLine(xe.GetAttribute("ISBN"));
XmlNodeList xnf1=xe.ChildNodes;
foreach(XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//顯示子節(jié)點點文本
}
}
public static string DataToXml(string _ip,string _xmlType,bool _issavexml,string
_contenttype,string _message,string _sendtime,string _toip)
{
//return null;
DataParser dp = new DataParser();
dp.Message = _message;
dp.IP = _ip;
dp.XmlType = _xmlType;
dp.isSaveXml = _issavexml;
dp.ContentType = _contenttype;
dp.Sendtime = _sendtime;
dp.Toip = _toip;
XmlDocument doc = new XmlDocument();
XmlDeclaration newDec = doc.CreateXmlDeclaration("1.0",null,null);
doc.AppendChild(newDec);
XmlElement newRoot = doc.CreateElement("Requests");
doc.AppendChild(newRoot);
XmlElement newtitle = doc.CreateElement("Request");
newtitle.SetAttribute("time", dp.Sendtime);
newRoot.AppendChild(newtitle);
XmlElement from = doc.CreateElement("from");
from.SetAttribute("ip", dp.IP);
from.SetAttribute("type", dp.XmlType);
from.SetAttribute("ctntype", dp.ContentType);
關(guān)鍵詞:XML
閱讀本文后您有什么感想? 已有 人給出評價!
- 1
- 1
- 1
- 1
- 1
- 1