asp.net操作XML.doc_第1页
asp.net操作XML.doc_第2页
asp.net操作XML.doc_第3页
asp.net操作XML.doc_第4页
asp.net操作XML.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、简单介绍using System.Xml;/初始化一个xml实例XmlDocument xml=new XmlDocument();/导入指定xml文件xml.Load(path);xml.Load(HttpContext.Current.Server.MapPath(/file/bookstore.xml);/指定一个节点XmlNode root=xml.SelectSingleNode(/root);/获取节点下所有直接子节点XmlNodeList childlist=root.ChildNodes;/判断该节点下是否有子节点root.HasChildNodes;/获取同名同级节点集合XmlNodeList nodelist=xml.SelectNodes(/Root/News);/生成一个新节点XmlElement node=xml.CreateElement(News);/将节点加到指定节点下,作为其子节点root.AppendChild(node);/将节点加到指定节点下某个子节点前root.InsertBefore(node,root.ChildeNodesi);/为指定节点的新建属性并赋值node.SetAttribute(id,11111);/为指定节点添加子节点root.AppendChild(node);/获取指定节点的指定属性值string id=node.Attributesid.Value;/获取指定节点中的文本string content=node.InnerText;/保存XML文件string path=Server.MapPath(/file/bookstore.xml);xml.Save(path);/or use :xml.Save(HttpContext.Current.Server.MapPath(/file/bookstore.xml);二、具体实例在C#.net中如何操作XML需要添加的命名空间:using System.Xml;定义几个公共对象:XmlDocument xmldoc ;XmlNode xmlnode ;XmlElement xmlelem ;1,创建到服务器同名目录下的xml文件:方法一:xmldoc = new XmlDocument ( ) ;/加入XML的声明段落,XmlDeclaration xmldecl;xmldecl = xmldoc.CreateXmlDeclaration(1.0,gb2312,null);xmldoc.AppendChild ( xmldecl);/加入一个根元素xmlelem = xmldoc.CreateElement ( , Employees , ) ;xmldoc.AppendChild ( xmlelem ) ;/加入另外一个元素for(int i=1;i3;i+)XmlNode root=xmldoc.SelectSingleNode(Employees);/查找 XmlElement xe1=xmldoc.CreateElement(Node);/创建一个节点 xe1.SetAttribute(genre,李赞红);/设置该节点genre属性 xe1.SetAttribute(ISBN,2-3631-4);/设置该节点ISBN属性XmlElement xesub1=xmldoc.CreateElement(title); xesub1.InnerText=CS从入门到精通;/设置文本节点 xe1.AppendChild(xesub1);/添加到节点中 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);/添加到节点中 /保存创建好的XML文档xmldoc.Save ( Server.MapPath(data.xml) ) ;/结果:在同名目录下生成了名为data.xml的文件,内容如下, CS从入门到精通 候捷 58.3 CS从入门到精通 候捷 58.3方法二:XmlTextWriter xmlWriter; string strFilename = Server.MapPath(data1.xml) ; xmlWriter = new XmlTextWriter(strFilename,Encoding.Default);/创建一个xml文档 xmlWriter.Formatting = Formatting.Indented; xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement(Employees); xmlWriter.WriteStartElement(Node); xmlWriter.WriteAttributeString(genre,李赞红); xmlWriter.WriteAttributeString(ISBN,2-3631-4); xmlWriter.WriteStartElement(title); xmlWriter.WriteString(CS从入门到精通); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement(author); xmlWriter.WriteString(候捷); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement(price); xmlWriter.WriteString(58.3); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); xmlWriter.Close();/结果: CS从入门到精通 候捷 58.32,添加一个结点:XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(Server.MapPath(data.xml); XmlNode root=xmlDoc.SelectSingleNode(Employees);/查找 XmlElement xe1=xmlDoc.CreateElement(Node);/创建一个节点 xe1.SetAttribute(genre,张三);/设置该节点genre属性 xe1.SetAttribute(ISBN,1-1111-1);/设置该节点ISBN属性XmlElement xesub1=xmlDoc.CreateElement(title); xesub1.InnerText=C#入门帮助;/设置文本节点 xe1.AppendChild(xesub1);/添加到节点中 XmlElement xesub2=xmlDoc.CreateElement(author); xesub2.InnerText=高手; xe1.AppendChild(xesub2); XmlElement xesub3=xmlDoc.CreateElement(price); xesub3.InnerText=158.3; xe1.AppendChild(xesub3);root.AppendChild(xe1);/添加到节点中 xmlDoc.Save ( Server.MapPath(data.xml) );/结果:在xml原有的内容里添加了一个结点,内容如下, CS从入门到精通 候捷 58.3 CS从入门到精通 候捷 58.3 C#入门帮助 高手 158.33,修改结点的值(属性和子结点):XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load( Server.MapPath(data.xml) );XmlNodeList nodeList=xmlDoc.SelectSingleNode(Employees).ChildNodes;/获取Employees节点的所有子节点foreach(XmlNode xn in nodeList)/遍历所有子节点 XmlElement xe=(XmlElement)xn;/将子节点类型转换为XmlElement类型 if(xe.GetAttribute(genre)=张三)/如果genre属性值为“张三” xe.SetAttribute(genre,update张三);/则修改该属性为“update张三”XmlNodeList nls=xe.ChildNodes;/继续获取xe子节点的所有子节点 foreach(XmlNode xn1 in nls)/遍历 XmlElement xe2=(XmlElement)xn1;/转换类型 if(xe2.Name=author)/如果找到 xe2.InnerText=亚胜;/则修改 xmlDoc.Save( Server.MapPath(data.xml) );/保存。/结果:将原来的所有结点的信息都修改了,xml的内容如下, CS从入门到精通 候捷 58.3 CS从入门到精通 候捷 58.3 C#入门帮助 亚胜 158.34,修改结点(添加结点的属性和添加结点的自结点):XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load( Server.MapPath(data.xml) );XmlNodeList nodeList=xmlDoc.SelectSingleNode(Employees).ChildNodes;/获取Employees节点的所有子节点foreach(XmlNode xn in nodeList) XmlElement xe=(XmlElement)xn; xe.SetAttribute(test,111111);XmlElement xesub=xmlDoc.CreateElement(flag); xesub.InnerText=1; xe.AppendChild(xesub); xmlDoc.Save( Server.MapPath(data.xml) );/结果:每个结点的属性都添加了一个,子结点也添加了一个,内容如下, CS从入门到精通 候捷 58.3 1 CS从入门到精通 候捷 58.3 1 C#入门帮助 亚胜 158.3 15,删除结点中的某一个属性:XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load( Server.MapPath(data.xml) ); XmlNodeList xnl=xmlDoc.SelectSingleNode(Employees).ChildNodes; foreach(XmlNode xn in xnl) XmlElement xe=(XmlElement)xn; xe.RemoveAttribute(genre);/删除genre属性XmlNodeList nls=xe.ChildNodes;/继续获取xe子节点的所有子节点 foreach(XmlNode xn1 in nls)/遍历 XmlElement xe2=(XmlElement)xn1;/转换类型 if(xe2.Name=flag)/如果找到 xe.RemoveChild(xe2);/则删除 xmlDoc.Save( Server.MapPath(data.xml) );/结果:删除了结点的一个属性和结点的一个子结点,内容如下, CS从入门到精通 候捷 58.3 CS从入门到精通 候捷 58.3 C#入门帮助 亚胜 158.36,删除结点:XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load( Server.MapPath(data.xml) ); XmlNode root=xmlDoc.SelectSingleNode(Employees);XmlNodeList xnl=xmlDoc.SelectSingleNode(Employees).ChildNodes; for(int i=0;ixnl.Count;i+)XmlElement xe=(XmlElement)xnl.Item(i); if(xe.GetAttribute(genre)=张三) root.RemoveChild(xe);if(ixnl.Count)i=i-1; xmlDoc.Save( Server.MapPath(data.xml) );/结果:删除了符合条件的所有结点,原来的内容: CS从入门到精通 候捷 58.3 CS从入门到精通 候捷 58.3 C#入门帮助 高手 158.3 C#入门帮助 高手 158.3删除后的内容: CS从入门到精通 候捷 58.3 CS从入门到精通 候捷 58.37,按照文本文件读取xmlSystem.IO.StreamReader myFile =new System.IO.StreamReader(Server.MapPath(data.xml),System.Text.Encoding.Default);/注意System.Text.Encoding.Defaultstring myString = myFile.ReadToEnd();/myString是读出的字符串myFile.Close();三、高级应用/*读取xml数据 两种xml方式*/ something something /*第一种方法*/DS.ReadXml(your xmlfile name);Container.DataItem(bb);Container.DataItem(cc);DS.ReadXmlSchema(your xmlfile name);/*第二种方法*/ 如果我要找到123然后取到321应该怎么写呢?using System.XML;XmlDataDocument xmlDoc = new System.Xml.XmlDataDocument();xmlDoc.Load(c:Config.xml);XmlElement elem = xmlDoc.GetElementById(add);string str = elem.Attributesvalue.Value/*第三种方法: SelectSingleNode 读取两种格式的xml *-/- Data Source=yf; user id=ctm_dbo;password=123 -XmlDocument doc = new XmlDocument();doc.Load(strXmlName); XmlNo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论