XML文档的基本操作
已知有【yǐ zhī yǒu】🕶一个🥖XML文档【wén dàng】(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、往【wǎng】<bookstore>节点【jiē diǎn】中🌤插入一个🔶<book>节点【jiē diǎn】:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找【chá zhǎo】〽<bookstore>
XmlElement xe1=xmlDoc.CreateElement("book");//创建一🐂个<book>节点【jiē diǎn】
xe1.SetAttribute("genre","李赞红🔤");//配置该【pèi zhì gāi】🎨节点【jiē diǎn】genre属性【shǔ xìng】
xe1.SetAttribute("ISBN","2-3631-4");//配置该【pèi zhì gāi】🎨节点【jiē diǎn】ISBN属性【shǔ xìng】
XmlElement xesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="CS从入门【cóng rù mén】😪到精通";//配置文🏫本节点
xe1.AppendChild(xesub1);//添加到【tiān jiā dào】<book>节点中【jiē diǎn zhōng】🚓
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ē diǎn zhōng】
xmlDoc.Save("bookstore.xml");
//================
结果为【jié guǒ wéi】🥧:
<?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从入门🛺到精通【dào jīng tōng】</title>
<author>候捷【hòu jié】🔳</author>
<price>58.3</price>
</book>
</bookstore>
2、修改节🚠点【diǎn】🔀:将genre属性值为“李赞红“的节点【de jiē diǎn】🔀的genre值改为🎬“update李赞红”,将该节【jiāng gāi jiē】点的子【diǎn de zǐ】😬节点【diǎn】🔀<author>
的文本【de wén běn】📄修改为“亚胜”。
XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取【huò qǔ】bookstore节🤷点的任何子【hé zǐ】🕚节🤷
点💽
foreach(XmlNode xn in nodeList)//遍历任何子节点💽
{
XmlElement xe=(XmlElement)xn;//将子节点💽类型【lèi xíng】转换为【wéi】👵XmlElement类型【lèi xíng】
if(xe.GetAttribute("genre")=="李赞红【lǐ zàn hóng】🐧")//假如genre属性值为【wéi】🚓“李赞红【lǐ zàn hóng】🐧”
{
xe.SetAttribute("genre","update李赞红【lǐ zàn hóng】🐧");//则修改🚋该属性【gāi shǔ xìng】😪为【wéi】🚓“update李赞红【lǐ zàn hóng】🐧”
XmlNodeList nls=xe.ChildNodes;//继续获取🦋xe子节点【zǐ jiē diǎn】的任何🥩子节点【zǐ jiē diǎn】
foreach(XmlNode xn1 in nls)//遍历🍓
{
XmlElement xe2=(XmlElement)xn1;//转换类【zhuǎn huàn lèi】型【xíng】
if(xe2.Name=="author")//假如找到
{
xe2.InnerText="亚胜【yà shèng】🍭";//则修改
break;//找到退出来就【chū lái jiù】能够了😵
}
}
break;
}
}
xmlDoc.Save("bookstore.xml");//保存【bǎo cún】🖤。
//=================
最后结果为:
<?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李赞红【lǐ zàn hóng】" ISBN="2-3631-4">
<title>CS从入门🔐到精通🦋</title>
<author>亚胜【yà shèng】</author>
<price>58.3</price>
</book>
</bookstore>
3、删除【shān chú】🕰 <book genre="fantasy" ISBN="2-3631-4">节点的🐵genre属性【shǔ xìng】,删除【shān chú】🕰 <book genre="update李赞红"
ISBN="2-3631-4">节点【jiē diǎn】🧔。
XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{
xe.RemoveAttribute("genre");//删除😝genre属性【shǔ xìng】
}
else if(xe.GetAttribute("genre")=="update李赞红🌃")
{
xe.RemoveAll();//删除该🌪节点的【jiē diǎn de】全部内容【róng】
}
}
xmlDoc.Save("bookstore.xml");
//====================
最后结果为:
<?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、显示任何数据。
XmlNode xn=xmlDoc.SelectSingleNode("bookstore");
XmlNodeList xnl=xn.ChildNodes;
foreach(XmlNode xnf in xnl)
{
XmlElement xe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//显示属📊性值【xìng zhí】
Console.WriteLine(xe.GetAttribute("ISBN"));
XmlNodeList xnf1=xe.ChildNodes;
foreach(XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//显示子节点点文本【wén běn】🛎
}
}
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 jiàn cí】🦇:XML
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1