XML文档基本操作的示例分析
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章将为大家详细讲解有关XML文档基本操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、简单介绍using System.Xml;//初始化一个x
千家信息网最后更新 2025年02月05日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 *---/-------------------------------------------------------------------- --------------------------------------------------------------------------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;}******************************************************************** Data Source=yf; user id=ctm_dbo;password=123 **--------------------------------------------------------------------**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安全错误
数据库的锁怎样保障安全
网络安全博士的意义
php向服务器发送请求
如何在数据库中禁止插入
食品网络安全平台
前端服务器传感器
数据库sql的作用
深圳热风网络技术有限公司
会话管理和业务管理服务器
芜湖市网络安全
落实实施网络安全法
通信设备网络技术
活动目录ad服务器
江西互联网科技有限公司
华青志愿网络安全证书
海致网聚网络技术公司ipo
数据库如何关闭防火墙
dcs分散型的数据库
贵州服务器机柜供应商
服务器 硬盘 直通模式
服务器含交换机吗
IIS服务器配置与管理实验
国际服最大的服务器
河南蜂巢网络技术有限公司
Access数据库罗斯文
春考网络技术实操真题
灵钰网络技术有限公司洛阳
联想t168g6服务器图片
数据库如何关闭防火墙
计算机网络技术视频
如何查看数据库文件夹