




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东佛山市第二人民医院服务中心招聘11人考前自测高频考点模拟试题及一套参考答案详解
- 2025年河北承德辰飞供电服务有限公司招聘101人考前自测高频考点模拟试题及答案详解(新)
- 身边的环保故事写物作文9篇范文
- 2025春季河南新乡工商职业学院招聘模拟试卷有答案详解
- 2025湖南邵阳市洞口县黄桥镇中心卫生院面向社会公开招聘编外合同制影像(医师)技师考前自测高频考点模拟试题及完整答案详解一套
- 2025广东社会科学大学招聘事业编制工作人员2人考前自测高频考点模拟试题及参考答案详解一套
- 山西省大同市联考2024-2025学年高二上学期10月月考地理试题(解析版)
- 辽宁省辽南协作体2024-2025学年高三上学期10月月考地理试题(解析版)
- 江西省上饶市蓝天教育集团2024-2025学年高一上学期第一次月考地理试卷(解析版)
- 2025甘肃省兰州市榆中县中医医院春季招聘15人模拟试卷(含答案详解)
- 2025至2030中国HVAC电机行业产业运行态势及投资规划深度研究报告
- 《智能制造技术与工程应用》全套教学课件
- 2025年全国保密教育线上培训考试试题库附答案【考试直接用】含答案详解
- 2025年度全国普通话水平测试20套复习题库及答案
- 2025年初级会计师考试真题试题及答案
- 上海嘉定区区属国有企业招聘考试真题2024
- 2025心肺复苏术课件
- 高性能材料有限公司年产4.5万吨电子级异丙醇扩建项目环评资料环境影响
- T-CECS 10400-2024 固废基胶凝材料
- 2025年内蒙古三新铁路有限责任公司招聘笔试参考题库含答案解析
- 第十四章其他原因引起的语言障碍讲解
评论
0/150
提交评论