前端之家收集整理的这篇文章主要介绍了
.net操作xml文件(新增.修改,删除,读取),
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
今天有个需求需要操作xml节点.突然见遗忘了许多.上网看了些资料.才整出来.脑袋真不够用.在这里把我找到的资料共享一下.方便以后使用.本文属于网摘/
@H_404_6@@H_404_6@1一、简单介绍 @H_404_6@2@H_404_6@usingSystem.Xml; @H_404_6@3@H_404_6@//@H_404_6@初始化一个xml实例@H_404_6@ @H_404_6@@H_404_6@4XmlDocument xml=@H_404_6@newXmlDocument(); @H_404_6@5@H_404_6@//@H_404_6@导入指定xml文件@H_404_6@ @H_404_6@@H_404_6@6xml.Load(path); @H_404_6@7xml.Load(HttpContext.Current.Server.MapPath(@H_404_6@"@H_404_6@~/file/bookstore.xml@H_404_6@")); @H_404_6@8@H_404_6@//@H_404_6@指定一个节点@H_404_6@ @H_404_6@@H_404_6@9XmlNode root=xml.SelectSingleNode(@H_404_6@"@H_404_6@/root@H_404_6@"); @H_404_6@10@H_404_6@//@H_404_6@获取节点下所有直接子节点@H_404_6@ @H_404_6@@H_404_6@11XmlNodeList childlist=root.ChildNodes; @H_404_6@12@H_404_6@//@H_404_6@判断该节点下是否有子节点@H_404_6@ @H_404_6@@H_404_6@13root.HasChildNodes; @H_404_6@14@H_404_6@//@H_404_6@获取同名同级节点集合@H_404_6@ @H_404_6@@H_404_6@15XmlNodeList nodelist=xml.SelectNodes(@H_404_6@"@H_404_6@/Root/News@H_404_6@"); @H_404_6@16@H_404_6@//@H_404_6@生成一个新节点@H_404_6@ @H_404_6@@H_404_6@17XmlElement node=xml.createElement_x(@H_404_6@"@H_404_6@News@H_404_6@"); @H_404_6@18@H_404_6@//@H_404_6@将节点加到指定节点下,作为其子节点@H_404_6@ @H_404_6@@H_404_6@19root.AppendChild(node); @H_404_6@20@H_404_6@//@H_404_6@将节点加到指定节点下某个子节点前@H_404_6@ @H_404_6@@H_404_6@21root.InsertBefore(node,root.ChildeNodes[i]); @H_404_6@22@H_404_6@//@H_404_6@为指定节点的新建属性并赋值@H_404_6@ @H_404_6@@H_404_6@23node.SetAttribute(@H_404_6@"@H_404_6@id@H_404_6@",@H_404_6@"@H_404_6@11111@H_404_6@"); @H_404_6@24@H_404_6@//@H_404_6@为指定节点添加子节点@H_404_6@ @H_404_6@@H_404_6@25root.AppendChild(node); @H_404_6@26@H_404_6@//@H_404_6@获取指定节点的指定属性值@H_404_6@ @H_404_6@@H_404_6@27@H_404_6@stringid=node.Attributes[@H_404_6@"@H_404_6@id@H_404_6@"].Value; @H_404_6@28@H_404_6@//@H_404_6@获取指定节点中的文本@H_404_6@ @H_404_6@@H_404_6@29@H_404_6@stringcontent=node.InnerText; @H_404_6@30@H_404_6@//@H_404_6@保存XML文件@H_404_6@ @H_404_6@@H_404_6@31@H_404_6@stringpath=Server.MapPath(@H_404_6@"@H_404_6@~/file/bookstore.xml@H_404_6@"); @H_404_6@32xml.Save(path); @H_404_6@33@H_404_6@//@H_404_6@or use :xml.Save(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));@H_404_6@ @H_404_6@@H_404_6@34二、具体实例 @H_404_6@35在C#.net中如何操作XML @H_404_6@36需要添加的命名空间: @H_404_6@37@H_404_6@usingSystem.Xml; @H_404_6@38定义几个公共对象: @H_404_6@39XmlDocument xmldoc ; @H_404_6@40XmlNode xmlnode ; @H_404_6@41XmlElement xmlelem ; @H_404_6@42@H_404_6@1,创建到服务器同名目录下的xml文件: @H_404_6@43 @H_404_6@44方法一: @H_404_6@45xmldoc =@H_404_6@newXmlDocument ( ) ; @H_404_6@46@H_404_6@//@H_404_6@加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>@H_404_6@ @H_404_6@@H_404_6@47XmlDeclaration xmldecl; @H_404_6@48xmldecl = xmldoc.CreateXmlDeclaration(@H_404_6@"@H_404_6@1.0@H_404_6@",@H_404_6@"@H_404_6@gb2312@H_404_6@",@H_404_6@null); @H_404_6@49xmldoc.AppendChild ( xmldecl); @H_404_6@50@H_404_6@//@H_404_6@加入一个根元素@H_404_6@ @H_404_6@@H_404_6@51xmlelem = xmldoc.createElement_x (@H_404_6@"",@H_404_6@"@H_404_6@Employees@H_404_6@",@H_404_6@"") ; @H_404_6@52xmldoc.AppendChild ( xmlelem ) ; @H_404_6@53@H_404_6@//@H_404_6@加入另外一个元素@H_404_6@ @H_404_6@@H_404_6@54@H_404_6@for(@H_404_6@inti=@H_404_6@1;i<@H_404_6@3;i++) @H_404_6@55{ @H_404_6@56XmlNode root=xmldoc.SelectSingleNode(@H_404_6@"@H_404_6@Employees@H_404_6@");@H_404_6@//@H_404_6@查找<Employees>@H_404_6@ @H_404_6@@H_404_6@57XmlElement xe1=xmldoc.createElement_x(@H_404_6@"@H_404_6@Node@H_404_6@");@H_404_6@//@H_404_6@创建一个<Node>节点@H_404_6@ @H_404_6@@H_404_6@58xe1.SetAttribute(@H_404_6@"@H_404_6@genre@H_404_6@",@H_404_6@"@H_404_6@李赞红@H_404_6@");@H_404_6@//@H_404_6@设置该节点genre属性@H_404_6@ @H_404_6@@H_404_6@59xe1.SetAttribute(@H_404_6@"@H_404_6@ISBN@H_404_6@",@H_404_6@"@H_404_6@2-3631-4@H_404_6@");@H_404_6@//@H_404_6@设置该节点ISBN属性@H_404_6@ @H_404_6@@H_404_6@60XmlElement xesub1=xmldoc.createElement_x(@H_404_6@"@H_404_6@title@H_404_6@"); @H_404_6@61xesub1.InnerText=@H_404_6@"@H_404_6@CS从入门到精通@H_404_6@";@H_404_6@//@H_404_6@设置文本节点@H_404_6@ @H_404_6@@H_404_6@62xe1.AppendChild(xesub1);@H_404_6@//@H_404_6@添加到<Node>节点中@H_404_6@ @H_404_6@@H_404_6@63XmlElement xesub2=xmldoc.createElement_x(@H_404_6@"@H_404_6@author@H_404_6@"); @H_404_6@64xesub2.InnerText=@H_404_6@"@H_404_6@候捷@H_404_6@"; @H_404_6@65xe1.AppendChild(xesub2); @H_404_6@66XmlElement xesub3=xmldoc.createElement_x(@H_404_6@"@H_404_6@price@H_404_6@"); @H_404_6@67xesub3.InnerText=@H_404_6@"@H_404_6@58.3@H_404_6@"; @H_404_6@68xe1.AppendChild(xesub3); @H_404_6@69root.AppendChild(xe1);@H_404_6@//@H_404_6@添加到<Employees>节点中@H_404_6@ @H_404_6@@H_404_6@70} @H_404_6@71@H_404_6@//@H_404_6@保存创建好的XML文档@H_404_6@ @H_404_6@@H_404_6@72xmldoc.Save ( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ) ; @H_404_6@73@H_404_6@////////////////////////////////////////////////////////////////////////////////////@H_404_6@//@H_404_6@ @H_404_6@@H_404_6@74结果:在同名目录下生成了名为data.xml的文件,内容如下, @H_404_6@75<?xml version=@H_404_6@"@H_404_6@1.0@H_404_6@"encoding=@H_404_6@"@H_404_6@gb2312@H_404_6@"?> @H_404_6@76<Employees> @H_404_6@77<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@78<title>CS从入门到精通</title> @H_404_6@79<author>候捷</author> @H_404_6@80<price>@H_404_6@58.3</price> @H_404_6@81</Node> @H_404_6@82<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@83<title>CS从入门到精通</title> @H_404_6@84<author>候捷</author> @H_404_6@85<price>@H_404_6@58.3</price> @H_404_6@86</Node> @H_404_6@87</Employees> @H_404_6@88 @H_404_6@89方法二: @H_404_6@90XmlTextWriterxmlWriter; @H_404_6@91@H_404_6@stringstrFilename = Server.MapPath(@H_404_6@"@H_404_6@data1.xml@H_404_6@") ; @H_404_6@92xmlWriter =@H_404_6@newXmlTextWriter(strFilename,Encoding.Default);@H_404_6@//@H_404_6@创建一个xml文档@H_404_6@ @H_404_6@@H_404_6@93xmlWriter.Formatting = Formatting.Indented; @H_404_6@94xmlWriter.WriteStartDocument(); @H_404_6@95xmlWriter.WriteStartElement(@H_404_6@"@H_404_6@Employees@H_404_6@"); @H_404_6@96xmlWriter.WriteStartElement(@H_404_6@"@H_404_6@Node@H_404_6@"); @H_404_6@97xmlWriter.WriteAttributeString(@H_404_6@"@H_404_6@genre@H_404_6@",@H_404_6@"@H_404_6@李赞红@H_404_6@"); @H_404_6@98xmlWriter.WriteAttributeString(@H_404_6@"@H_404_6@ISBN@H_404_6@",@H_404_6@"@H_404_6@2-3631-4@H_404_6@"); @H_404_6@99xmlWriter.WriteStartElement(@H_404_6@"@H_404_6@title@H_404_6@"); @H_404_6@100xmlWriter.WriteString(@H_404_6@"@H_404_6@CS从入门到精通@H_404_6@"); @H_404_6@101xmlWriter.WriteEndElement(); @H_404_6@102xmlWriter.WriteStartElement(@H_404_6@"@H_404_6@author@H_404_6@"); @H_404_6@103xmlWriter.WriteString(@H_404_6@"@H_404_6@候捷@H_404_6@"); @H_404_6@104xmlWriter.WriteEndElement(); @H_404_6@105xmlWriter.WriteStartElement(@H_404_6@"@H_404_6@price@H_404_6@"); @H_404_6@106xmlWriter.WriteString(@H_404_6@"@H_404_6@58.3@H_404_6@"); @H_404_6@107xmlWriter.WriteEndElement(); @H_404_6@108xmlWriter.WriteEndElement(); @H_404_6@109xmlWriter.Close(); @H_404_6@110@H_404_6@////////////////////////////////////////////////////////////////////////////////////@H_404_6@//@H_404_6@ @H_404_6@@H_404_6@111结果: @H_404_6@112<?xml version=@H_404_6@"@H_404_6@1.0@H_404_6@"encoding=@H_404_6@"@H_404_6@gb2312@H_404_6@"?> @H_404_6@113<Employees> @H_404_6@114<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@115<title>CS从入门到精通</title> @H_404_6@116<author>候捷</author> @H_404_6@117<price>@H_404_6@58.3</price> @H_404_6@118</Node> @H_404_6@119</Employees> @H_404_6@120@H_404_6@2,添加一个结点: @H_404_6@121XmlDocument xmlDoc=@H_404_6@newXmlDocument(); @H_404_6@122xmlDoc.Load(Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@")); @H_404_6@123XmlNode root=xmlDoc.SelectSingleNode(@H_404_6@"@H_404_6@Employees@H_404_6@");@H_404_6@//@H_404_6@查找<Employees>@H_404_6@ @H_404_6@@H_404_6@124XmlElement xe1=xmlDoc.createElement_x(@H_404_6@"@H_404_6@Node@H_404_6@");@H_404_6@//@H_404_6@创建一个<Node>节点@H_404_6@ @H_404_6@@H_404_6@125xe1.SetAttribute(@H_404_6@"@H_404_6@genre@H_404_6@",@H_404_6@"@H_404_6@张三@H_404_6@");@H_404_6@//@H_404_6@设置该节点genre属性@H_404_6@ @H_404_6@@H_404_6@126xe1.SetAttribute(@H_404_6@"@H_404_6@ISBN@H_404_6@",@H_404_6@"@H_404_6@1-1111-1@H_404_6@");@H_404_6@//@H_404_6@设置该节点ISBN属性@H_404_6@ @H_404_6@@H_404_6@127XmlElementxesub1=xmlDoc.createElement_x(@H_404_6@"@H_404_6@title@H_404_6@"); @H_404_6@128xesub1.InnerText=@H_404_6@"@H_404_6@C#入门帮助@H_404_6@";@H_404_6@//@H_404_6@设置文本节点@H_404_6@ @H_404_6@@H_404_6@129xe1.AppendChild(xesub1);@H_404_6@//@H_404_6@添加到<Node>节点中@H_404_6@ @H_404_6@@H_404_6@130XmlElement xesub2=xmlDoc.createElement_x(@H_404_6@"@H_404_6@author@H_404_6@"); @H_404_6@131xesub2.InnerText=@H_404_6@"@H_404_6@高手@H_404_6@"; @H_404_6@132xe1.AppendChild(xesub2); @H_404_6@133XmlElement xesub3=xmlDoc.createElement_x(@H_404_6@"@H_404_6@price@H_404_6@"); @H_404_6@134xesub3.InnerText=@H_404_6@"@H_404_6@158.3@H_404_6@"; @H_404_6@135xe1.AppendChild(xesub3); @H_404_6@136root.AppendChild(xe1);@H_404_6@//@H_404_6@添加到<Employees>节点中@H_404_6@ @H_404_6@@H_404_6@137xmlDoc.Save ( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ); @H_404_6@138@H_404_6@////////////////////////////////////////////////////////////////////////////////////@H_404_6@//@H_404_6@ @H_404_6@@H_404_6@139结果:在xml原有的内容里添加了一个结点,内容如下, @H_404_6@140<?xml version=@H_404_6@"@H_404_6@1.0@H_404_6@"encoding=@H_404_6@"@H_404_6@gb2312@H_404_6@"?> @H_404_6@141<Employees> @H_404_6@142<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@143<title>CS从入门到精通</title> @H_404_6@144<author>候捷</author> @H_404_6@145<price>@H_404_6@58.3</price> @H_404_6@146</Node> @H_404_6@147<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@148<title>CS从入门到精通</title> @H_404_6@149<author>候捷</author> @H_404_6@150<price>@H_404_6@58.3</price> @H_404_6@151</Node> @H_404_6@152<Node genre=@H_404_6@"@H_404_6@张三@H_404_6@"ISBN=@H_404_6@"@H_404_6@1-1111-1@H_404_6@"> @H_404_6@153<title>C#入门帮助</title> @H_404_6@154<author>高手</author> @H_404_6@155<price>@H_404_6@158.3</price> @H_404_6@156</Node> @H_404_6@157</Employees> @H_404_6@158@H_404_6@3,修改结点的值(属性和子结点): @H_404_6@159XmlDocument xmlDoc=@H_404_6@newXmlDocument(); @H_404_6@160xmlDoc.Load( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ); @H_404_6@161XmlNodeList nodeList=xmlDoc.SelectSingleNode(@H_404_6@"@H_404_6@Employees@H_404_6@").ChildNodes;@H_404_6@//@H_404_6@获取Employees节点的所有子节点@H_404_6@ @H_404_6@@H_404_6@162@H_404_6@foreach(XmlNode xn@H_404_6@innodeList)@H_404_6@//@H_404_6@遍历所有子节点@H_404_6@ @H_404_6@@H_404_6@163{ @H_404_6@164XmlElement xe=(XmlElement)xn;@H_404_6@//@H_404_6@将子节点类型转换为XmlElement类型@H_404_6@ @H_404_6@@H_404_6@165@H_404_6@if(xe.GetAttribute(@H_404_6@"@H_404_6@genre@H_404_6@")==@H_404_6@"@H_404_6@张三@H_404_6@")@H_404_6@//@H_404_6@如果genre属性值为“张三”@H_404_6@ @H_404_6@@H_404_6@166{ @H_404_6@167xe.SetAttribute(@H_404_6@"@H_404_6@genre@H_404_6@",@H_404_6@"@H_404_6@update张三@H_404_6@");@H_404_6@//@H_404_6@则修改该属性为“update张三”@H_404_6@ @H_404_6@@H_404_6@168XmlNodeList nls=xe.ChildNodes;@H_404_6@//@H_404_6@继续获取xe子节点的所有子节点@H_404_6@ @H_404_6@@H_404_6@169@H_404_6@foreach(XmlNode xn1@H_404_6@innls)@H_404_6@//@H_404_6@遍历@H_404_6@ @H_404_6@@H_404_6@170{ @H_404_6@171XmlElement xe2=(XmlElement)xn1;@H_404_6@//@H_404_6@转换类型@H_404_6@ @H_404_6@@H_404_6@172@H_404_6@if(xe2.Name==@H_404_6@"@H_404_6@author@H_404_6@")@H_404_6@//@H_404_6@如果找到@H_404_6@ @H_404_6@@H_404_6@173{ @H_404_6@174xe2.InnerText=@H_404_6@"@H_404_6@亚胜@H_404_6@";@H_404_6@//@H_404_6@则修改@H_404_6@ @H_404_6@@H_404_6@175} @H_404_6@176} @H_404_6@177} @H_404_6@178} @H_404_6@179xmlDoc.Save( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") );@H_404_6@//@H_404_6@保存。@H_404_6@ @H_404_6@@H_404_6@180@H_404_6@////////////////////////////////////////////////////////////////////////////////////@H_404_6@//@H_404_6@ @H_404_6@@H_404_6@181结果:将原来的所有结点的信息都修改了,xml的内容如下, @H_404_6@182<?xml version=@H_404_6@"@H_404_6@1.0@H_404_6@"encoding=@H_404_6@"@H_404_6@gb2312@H_404_6@"?> @H_404_6@183<Employees> @H_404_6@184<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@185<title>CS从入门到精通</title> @H_404_6@186<author>候捷</author> @H_404_6@187<price>@H_404_6@58.3</price> @H_404_6@188</Node> @H_404_6@189<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@190<title>CS从入门到精通</title> @H_404_6@191<author>候捷</author> @H_404_6@192<price>@H_404_6@58.3</price> @H_404_6@193</Node> @H_404_6@194<Node genre=@H_404_6@"@H_404_6@update张三@H_404_6@"ISBN=@H_404_6@"@H_404_6@1-1111-1@H_404_6@"> @H_404_6@195<title>C#入门帮助</title> @H_404_6@196<author>亚胜</author> @H_404_6@197<price>@H_404_6@158.3</price> @H_404_6@198</Node> @H_404_6@199</Employees> @H_404_6@200@H_404_6@4,修改结点(添加结点的属性和添加结点的自结点): @H_404_6@201XmlDocument xmlDoc=@H_404_6@newXmlDocument(); @H_404_6@202xmlDoc.Load( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ); @H_404_6@203XmlNodeList nodeList=xmlDoc.SelectSingleNode(@H_404_6@"@H_404_6@Employees@H_404_6@").ChildNodes;@H_404_6@//@H_404_6@获取Employees节点的所有子节点@H_404_6@ @H_404_6@@H_404_6@204@H_404_6@foreach(XmlNode xn@H_404_6@innodeList) @H_404_6@205{ @H_404_6@206XmlElement xe=(XmlElement)xn; @H_404_6@207xe.SetAttribute(@H_404_6@"@H_404_6@test@H_404_6@",@H_404_6@"@H_404_6@111111@H_404_6@"); @H_404_6@208XmlElement xesub=xmlDoc.createElement_x(@H_404_6@"@H_404_6@flag@H_404_6@"); @H_404_6@209xesub.InnerText=@H_404_6@"@H_404_6@1@H_404_6@"; @H_404_6@210xe.AppendChild(xesub); @H_404_6@211} @H_404_6@212xmlDoc.Save( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ); @H_404_6@213@H_404_6@////////////////////////////////////////////////////////////////////////////////////@H_404_6@//@H_404_6@ @H_404_6@@H_404_6@214结果:每个结点的属性都添加了一个,子结点也添加了一个,内容如下, @H_404_6@215<?xml version=@H_404_6@"@H_404_6@1.0@H_404_6@"encoding=@H_404_6@"@H_404_6@gb2312@H_404_6@"?> @H_404_6@216<Employees> @H_404_6@217<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"test=@H_404_6@"@H_404_6@111111@H_404_6@"> @H_404_6@218<title>CS从入门到精通</title> @H_404_6@219<author>候捷</author> @H_404_6@220<price>@H_404_6@58.3</price> @H_404_6@221<flag>@H_404_6@1</flag> @H_404_6@222</Node> @H_404_6@223<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"test=@H_404_6@"@H_404_6@111111@H_404_6@"> @H_404_6@224<title>CS从入门到精通</title> @H_404_6@225<author>候捷</author> @H_404_6@226<price>@H_404_6@58.3</price> @H_404_6@227<flag>@H_404_6@1</flag> @H_404_6@228</Node> @H_404_6@229<Node genre=@H_404_6@"@H_404_6@update张三@H_404_6@"ISBN=@H_404_6@"@H_404_6@1-1111-1@H_404_6@"test=@H_404_6@"@H_404_6@111111@H_404_6@"> @H_404_6@230<title>C#入门帮助</title> @H_404_6@231<author>亚胜</author> @H_404_6@232<price>@H_404_6@158.3</price> @H_404_6@233<flag>@H_404_6@1</flag> @H_404_6@234</Node> @H_404_6@235</Employees> @H_404_6@236@H_404_6@5,删除结点中的某一个属性: @H_404_6@237XmlDocument xmlDoc=@H_404_6@newXmlDocument(); @H_404_6@238xmlDoc.Load( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ); @H_404_6@239XmlNodeList xnl=xmlDoc.SelectSingleNode(@H_404_6@"@H_404_6@Employees@H_404_6@").ChildNodes; @H_404_6@240@H_404_6@foreach(XmlNode xn@H_404_6@inxnl) @H_404_6@241{ @H_404_6@242XmlElement xe=(XmlElement)xn; @H_404_6@243xe.RemoveAttribute(@H_404_6@"@H_404_6@genre@H_404_6@");@H_404_6@//@H_404_6@删除genre属性@H_404_6@ @H_404_6@@H_404_6@244XmlNodeList nls=xe.ChildNodes;@H_404_6@//@H_404_6@继续获取xe子节点的所有子节点@H_404_6@ @H_404_6@@H_404_6@245@H_404_6@foreach(XmlNode xn1@H_404_6@innls)@H_404_6@//@H_404_6@遍历@H_404_6@ @H_404_6@@H_404_6@246{ @H_404_6@247XmlElement xe2=(XmlElement)xn1;@H_404_6@//@H_404_6@转换类型@H_404_6@ @H_404_6@@H_404_6@248@H_404_6@if(xe2.Name==@H_404_6@"@H_404_6@flag@H_404_6@")@H_404_6@//@H_404_6@如果找到@H_404_6@ @H_404_6@@H_404_6@249{ @H_404_6@250xe.RemoveChild(xe2);@H_404_6@//@H_404_6@则删除@H_404_6@ @H_404_6@@H_404_6@251} @H_404_6@252} @H_404_6@253} @H_404_6@254xmlDoc.Save( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ); @H_404_6@255@H_404_6@////////////////////////////////////////////////////////////////////////////////////@H_404_6@//]@H_404_6@ @H_404_6@@H_404_6@256结果:删除了结点的一个属性和结点的一个子结点,内容如下, @H_404_6@257<?xml version=@H_404_6@"@H_404_6@1.0@H_404_6@"encoding=@H_404_6@"@H_404_6@gb2312@H_404_6@"?> @H_404_6@258<Employees> @H_404_6@259<Node ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"test=@H_404_6@"@H_404_6@111111@H_404_6@"> @H_404_6@260<title>CS从入门到精通</title> @H_404_6@261<author>候捷</author> @H_404_6@262<price>@H_404_6@58.3</price> @H_404_6@263</Node> @H_404_6@264<Node ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"test=@H_404_6@"@H_404_6@111111@H_404_6@"> @H_404_6@265<title>CS从入门到精通</title> @H_404_6@266<author>候捷</author> @H_404_6@267<price>@H_404_6@58.3</price> @H_404_6@268</Node> @H_404_6@269<Node ISBN=@H_404_6@"@H_404_6@1-1111-1@H_404_6@"test=@H_404_6@"@H_404_6@111111@H_404_6@"> @H_404_6@270<title>C#入门帮助</title> @H_404_6@271<author>亚胜</author> @H_404_6@272<price>@H_404_6@158.3</price> @H_404_6@273</Node> @H_404_6@274</Employees> @H_404_6@275@H_404_6@6,删除结点: @H_404_6@276XmlDocument xmlDoc=@H_404_6@newXmlDocument(); @H_404_6@277xmlDoc.Load( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ); @H_404_6@278XmlNode root=xmlDoc.SelectSingleNode(@H_404_6@"@H_404_6@Employees@H_404_6@"); @H_404_6@279XmlNodeList xnl=xmlDoc.SelectSingleNode(@H_404_6@"@H_404_6@Employees@H_404_6@").ChildNodes; @H_404_6@280@H_404_6@for(@H_404_6@inti=@H_404_6@0;i<xnl.Count;i++) @H_404_6@281{ @H_404_6@282XmlElement xe=(XmlElement)xnl.Item(i); @H_404_6@283@H_404_6@if(xe.GetAttribute(@H_404_6@"@H_404_6@genre@H_404_6@")==@H_404_6@"@H_404_6@张三@H_404_6@") @H_404_6@284{ @H_404_6@285root.RemoveChild(xe); @H_404_6@286@H_404_6@if(i<xnl.Count)i=i-@H_404_6@1; @H_404_6@287} @H_404_6@288} @H_404_6@289xmlDoc.Save( Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@") ); @H_404_6@290@H_404_6@////////////////////////////////////////////////////////////////////////////////////@H_404_6@//]@H_404_6@ @H_404_6@@H_404_6@291结果:删除了符合条件的所有结点,原来的内容: @H_404_6@292<?xml version=@H_404_6@"@H_404_6@1.0@H_404_6@"encoding=@H_404_6@"@H_404_6@gb2312@H_404_6@"?> @H_404_6@293<Employees> @H_404_6@294<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@295<title>CS从入门到精通</title> @H_404_6@296<author>候捷</author> @H_404_6@297<price>@H_404_6@58.3</price> @H_404_6@298</Node> @H_404_6@299<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@300<title>CS从入门到精通</title> @H_404_6@301<author>候捷</author> @H_404_6@302<price>@H_404_6@58.3</price> @H_404_6@303</Node> @H_404_6@304<Node genre=@H_404_6@"@H_404_6@张三@H_404_6@"ISBN=@H_404_6@"@H_404_6@1-1111-1@H_404_6@"> @H_404_6@305<title>C#入门帮助</title> @H_404_6@306<author>高手</author> @H_404_6@307<price>@H_404_6@158.3</price> @H_404_6@308</Node> @H_404_6@309<Node genre=@H_404_6@"@H_404_6@张三@H_404_6@"ISBN=@H_404_6@"@H_404_6@1-1111-1@H_404_6@"> @H_404_6@310<title>C#入门帮助</title> @H_404_6@311<author>高手</author> @H_404_6@312<price>@H_404_6@158.3</price> @H_404_6@313</Node> @H_404_6@314</Employees> @H_404_6@315删除后的内容: @H_404_6@316<?xml version=@H_404_6@"@H_404_6@1.0@H_404_6@"encoding=@H_404_6@"@H_404_6@gb2312@H_404_6@"?> @H_404_6@317<Employees> @H_404_6@318<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@319<title>CS从入门到精通</title> @H_404_6@320<author>候捷</author> @H_404_6@321<price>@H_404_6@58.3</price> @H_404_6@322</Node> @H_404_6@323<Node genre=@H_404_6@"@H_404_6@李赞红@H_404_6@"ISBN=@H_404_6@"@H_404_6@2-3631-4@H_404_6@"> @H_404_6@324<title>CS从入门到精通</title> @H_404_6@325<author>候捷</author> @H_404_6@326<price>@H_404_6@58.3</price> @H_404_6@327</Node> @H_404_6@328</Employees> @H_404_6@329@H_404_6@7,按照文本文件读取xml @H_404_6@330System.IO.StreamReadermyFile =@H_404_6@new @H_404_6@331System.IO.StreamReader(Server.MapPath(@H_404_6@"@H_404_6@data.xml@H_404_6@"),System.Text.Encoding.Default); @H_404_6@332@H_404_6@//@H_404_6@注意System.Text.Encoding.Default@H_404_6@ @H_404_6@@H_404_6@333@H_404_6@stringmyString = myFile.ReadToEnd();@H_404_6@//@H_404_6@myString是读出的字符串@H_404_6@ @H_404_6@@H_404_6@334myFile.Close(); @H_404_6@335 @H_404_6@336三、高级应用 @H_404_6@337 @H_404_6@338<aaa> @H_404_6@339<bb>something</bb> @H_404_6@340<cc>something</cc> @H_404_6@341</aaa> @H_404_6@342 @H_404_6@343<aaa> @H_404_6@344<add key=@H_404_6@"@H_404_6@123@H_404_6@"value=@H_404_6@"@H_404_6@321@H_404_6@"/> @H_404_6@345</aaa> @H_404_6@346 @H_404_6@347DS.ReadXml(@H_404_6@"@H_404_6@your xmlfile name@H_404_6@"); @H_404_6@348Container.DataItem(@H_404_6@"@H_404_6@bb@H_404_6@"); @H_404_6@349Container.DataItem(@H_404_6@"@H_404_6@cc@H_404_6@"); @H_404_6@350DS.ReadXmlSchema(@H_404_6@"@H_404_6@your xmlfile name@H_404_6@"); @H_404_6@351 @H_404_6@352 @H_404_6@353<aaa> @H_404_6@354<add key=@H_404_6@"@H_404_6@123@H_404_6@"value=@H_404_6@"@H_404_6@321@H_404_6@"/> @H_404_6@355</aaa> @H_404_6@356如果我要找到123然后取到321应该怎么写呢? @H_404_6@357 @H_404_6@358@H_404_6@usingSystem.XML; @H_404_6@359XmlDataDocument xmlDoc =@H_404_6@newSystem.Xml.XmlDataDocument(); @H_404_6@360xmlDoc.Load(@H_404_6@@"@H_404_6@c:\Config.xml@H_404_6@"); @H_404_6@361XmlElement elem = xmlDoc.GetElementById(@H_404_6@"@H_404_6@add@H_404_6@"); @H_404_6@362@H_404_6@stringstr = elem.Attributes[@H_404_6@"@H_404_6@value@H_404_6@"].Value @H_404_6@363 @H_404_6@364 @H_404_6@365@H_404_6@ @H_404_6@366@H_404_6@@H_404_6@-------------------------------------------------------------------- @H_404_6@367@H_404_6@@H_404_6@<?xml version="1.0" encoding="utf-8" ?> @H_404_6@368@H_404_6@@H_404_6@<configuration> @H_404_6@369@H_404_6@@H_404_6@<appSettings> @H_404_6@370@H_404_6@@H_404_6@<ConnectionString>Data Source=yf; user id=ctm_dbo;password=123</ConnectionString> @H_404_6@371@H_404_6@@H_404_6@</appSettings> @H_404_6@372@H_404_6@@H_404_6@</configuration> @H_404_6@373@H_404_6@@H_404_6@-------------------------------------------------------------------------- @H_404_6@374@H_404_6@@H_404_6@XmlDocument doc = new XmlDocument(); @H_404_6@375@H_404_6@@H_404_6@doc.Load(strXmlName); @H_404_6@376@H_404_6@@H_404_6@ @H_404_6@377@H_404_6@@H_404_6@XmlNode node=doc.SelectSingleNode("/configuration/appSettings/ConnectionString"); @H_404_6@378@H_404_6@@H_404_6@if(node!=null) @H_404_6@379@H_404_6@@H_404_6@{ @H_404_6@380@H_404_6@@H_404_6@string k1=node.Value; //null @H_404_6@381@H_404_6@@H_404_6@string k2=node.InnerText;//Data Source=yf; user id=ctm_dbo;password=123 @H_404_6@382@H_404_6@@H_404_6@string k3=node.InnerXml;//Data Source=yf;user id=ctm_dbo;password=123 @H_404_6@383@H_404_6@@H_404_6@node=null; @H_404_6@384@H_404_6@@H_404_6@} @H_404_6@385@H_404_6@@H_404_6@ @H_404_6@386@H_404_6@@H_404_6@******************************************************************** @H_404_6@387@H_404_6@@H_404_6@<?xml version="1.0" encoding="utf-8" ?> @H_404_6@388@H_404_6@@H_404_6@<configuration> @H_404_6@389@H_404_6@@H_404_6@<appSettings> @H_404_6@390@H_404_6@@H_404_6@<add key="ConnectionString" value="Data Source=yf; user id=ctm_dbo;password=123" /> @H_404_6@391@H_404_6@@H_404_6@</appSettings> @H_404_6@392@H_404_6@@H_404_6@</configuration> @H_404_6@393@H_404_6@@H_404_6@**--------------------------------------------------------------------** @H_404_6@394@H_404_6@@H_404_6@XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add"); @H_404_6@395@H_404_6@@H_404_6@if(node!=null) @H_404_6@396@H_404_6@@H_404_6@{ @H_404_6@397@H_404_6@@H_404_6@string k=node.Attributes["key"].Value; @H_404_6@398@H_404_6@@H_404_6@string v=node.Attributes["value"].Value; @H_404_6@399@H_404_6@@H_404_6@node=null; @H_404_6@400@H_404_6@@H_404_6@} @H_404_6@401@H_404_6@@H_404_6@*--------------------------------------------------------------------* @H_404_6@402@H_404_6@@H_404_6@XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add"); @H_404_6@403@H_404_6@@H_404_6@if(node!=null) @H_404_6@404@H_404_6@@H_404_6@{ @H_404_6@405@H_404_6@@H_404_6@XmlNodeReadernr=new XmlNodeReader(node); @H_404_6@406@H_404_6@@H_404_6@nr.MoveToContent(); @H_404_6@407@H_404_6@@H_404_6@//检查当前节点是否是内容节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。 @H_404_6@408@H_404_6@@H_404_6@nr.MoveToAttribute("value"); @H_404_6@409@H_404_6@@H_404_6@string s=nr.Value; @H_404_6@410@H_404_6@@H_404_6@node=null; @H_404_6@411@H_404_6@}
原文链接:https://www.f2er.com/xml/297107.html