




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、简单介绍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.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); 二、具体实例定义几个公共对象: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.3 2,添加一个结点: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.3 3,修改结点的值(属性和子结点):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.3 4,修改结点(添加结点的属性和添加结点的自结点):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 1 5,删除结点中的某一个属性: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.3 6,删除结点: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.3 7,按照文本文件读取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 -XmlDocument doc = new XmlDocument();doc.Load(strXmlName); XmlNode node=doc.SelectSingleNode(/configuration/appSettings/ConnectionString); if(node!=null) string k1=node.Value; /null string k2=node.InnerText;/Data Source=yf; user string k3=node.InnerXml;/Data Source=yf; user node=null; * *-* XmlNode node=doc.SelectSingleNode(/configuration/appSettings/add); if(node!=null) string k=node.Attributeskey.Value; string v=node.Attributesvalue.Value; node=null; *-* XmlNode node=doc.SelectSingleNode(/configuration/appSettings/add); if(node!=null) XmlNodeReader nr=new XmlNodeReader(node); nr.MoveToContent(); /检查当前节点是否是内容节点。如果此节点不是内容节点,则读取器向前跳至下一个内容节点或文件结尾。 nr.MoveToAttribute(value); string s=nr.Value; node=null; 方法一: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.3 2,添加一个结点: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.3 3,修改结点的值(属性和子结点):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.3 4,修改结点(添加结点的属性和添加结点的自结点):XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load( Server.MapPath(data.xml) ); XmlNodeList nodeList=xmlDoc.SelectSingleNode(Employees).ChildNodes;/获取Employees节点的所有子节点 foreach(XmlN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南株洲市行政审批服务局招聘中级雇员2考前自测高频考点模拟试题及参考答案详解一套
- 安全培训效果评估和改进课件
- 安全培训效果考评方案课件
- 乘风破浪初高中毕业季毕业典礼电子相册模板
- 2025春季新疆石河子大学第一附属医院、石河子大学附属中医医院(兵团中医医院)校园招聘10人考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年高性能钼片项目合作计划书
- 2025广西百色市田阳区消防救援大队政府招聘专职消防员9人模拟试卷附答案详解(突破训练)
- 2025杭州淳安县公开招聘中小学教师12人模拟试卷参考答案详解
- 2025广东深圳市宝安区陶园中英文实验学校招聘精英教师16人考前自测高频考点模拟试题附答案详解(完整版)
- 2025年河北秦皇岛工业职业技术学院招聘专任教师3人模拟试卷及答案详解(典优)
- “互联网+”大学生创新创业大赛计划书一等奖
- 家具制造业2025年原材料价格波动对行业市场发展趋势影响报告
- 工程后期服务的方案(3篇)
- 行政管理毕业论文8000
- 检测人员管理办法格式
- 老年人脑卒中课件
- 2025年传媒行业编辑记者招聘笔试模拟题及答案全解
- 茶百道培训课件
- 2025年食品安全人员在线考试试题及答案
- 多重耐药菌感染患者的护理LP
- 2025-2026学年冀教版(2024)小学数学一年级上册(全册)教学设计(附目录P339)
评论
0/150
提交评论