XML文档基本操作的示例分析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关XML文档基本操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、简单介绍using System.Xml;//初始化一个x
千家信息网最后更新 2026年11月01日XML文档基本操作的示例分析
这篇文章将为大家详细讲解有关XML文档基本操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、简单介绍
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.ChildeNodes[i]);//为指定节点的新建属性并赋值node.SetAttribute("id","11111");//为指定节点添加子节点root.AppendChild(node);//获取指定节点的指定属性值string id=node.Attributes["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"));在C#.net中如何操作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;i<3;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;i结果:删除了符合条件的所有结点,原来的内容:
CS从入门到精通 候捷 58.3 CS从入门到精通 候捷 58.3 C#入门帮助 高手 158.3 C#入门帮助 高手 158.3
删除后的内容:
CS从入门到精通 候捷 58.3 CS从入门到精通 候捷 58.3
7,按照文本文件读取xml
System.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.Attributes["value"].Value/*第三种方法: SelectSingleNode 读取两种格式的xml *---/--------------------------------------------------------------------Data Source=yf; user id=ctm_dbo;password=123 --------------------------------------------------------------------------XmlDocument doc = new XmlDocument();doc.Load(strXmlName);XmlNode node=doc.SelectSingleNode("/configuration/appSettings/ConnectionString");if(node!=null){string k1=node.Value; //nullstring k2=node.InnerText;//Data Source=yf; user id=ctm_dbo;password=123string k3=node.InnerXml;//Data Source=yf; user id=ctm_dbo;password=123node=null;}******************************************************************** **--------------------------------------------------------------------**XmlNode node=doc.SelectSingleNode("/configuration/appSettings/add");if(node!=null){string k=node.Attributes["key"].Value;string v=node.Attributes["value"].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;}
关于"XML文档基本操作的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
节点
结点
属性
内容
帮助
结果
文件
张三
方法
文档
文本
类型
高手
篇文章
基本操作
示例
分析
个子
元素
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云南咖啡
喔噻互联网科技有限公司
百单网互联网科技有限公司怎么样
南京欣网互联网络科技有限公司
艾特科技互联网
壕鑫互联网络科技
无线互联网科技
融贸通互联网科技
互联网科技视频素材
华中科技有哪些互联网大佬
互联网科技革命什么开始
玉溪互联网科技怎么选
互联网时代的科技公司
上海创道互联网络科技有限公司
从那以后互联网科技有限公司
昆明中奇联合互联网科技
好易买互联网科技
上海旺乐尼互联网科技有限公司
广东猫王互联网科技有限公司电话
互联网科技快速发展优美句子
耶加雪菲
互联网医疗科技
互联网科技英文
嘟嘟瓜互联网科技
佛山市拉法互联网科技有限公司
用友工业互联网科技发展
同城互联网络科技
银川新华互联网科技学校原画
科技互联网经济论坛
保山浩联互联网科技有限公司