C#中XML文件内容增删改查的方法
C#中XML文件内容增删改查的方法
本篇内容介绍了“C#中XML文件内容增删改查的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
什么是XML?
XML是一种可扩展标记语言(EXtensible Markup Language)。
XML是一种很像HTML的标记语言。
XML的设计宗旨是传输数据,而不是显示数据。
XML标签没有被预定义。您需要自行定义标签。
XML被设计为具有自我描述性。
XML是 W3C 的推荐标准。
XML的优缺点
XML的优点
语法严谨,格式统一,符合标准。
容易与其他系统进行远程交互,数据共享比较方便。
XML的缺点
扩展性、弹性、易读性均不佳。
XML文件庞大,文件格式复杂,传输占带宽。
服务器端和客户端解析XML花费较多的资源和时间。
XML简单示例
在线xml验证工具
<?xmlversion="1.0"encoding="utf-8"?><books><book><author>追逐时光者</author><title>XML学习教程</title><publisher>时光出版社</publisher></book></books>
XML中5个预定义的实体引用
转义字符 | 符号 | 名称 |
---|---|---|
& | & | 和号 |
< | < | 小于 |
> | > | 大于 |
' | ' | 省略号 |
" | " | 引号 |
严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的。这时,Xml有两种解决方案来处理这种问题。
CDATA
转义字符
C#把特殊符号转换为转义字符
///<summary>///特殊符号转换为转义字符///</summary>///<paramname="xmlStr"></param>///<returns></returns>publicstringXmlSpecialSymbolConvert(stringxmlStr){returnxmlStr.Replace("&","&").Replace("<","<").Replace(">",">").Replace("\'","'").Replace("\"",""");}
C#创建简单的XML文件
///<summary>///创建Xml文件///</summary>publicvoidCreateXmlFile(){XmlDocumentxmlDoc=newXmlDocument();//创建类型声明节点XmlNodenode=xmlDoc.CreateXmlDeclaration("1.0","utf-8","");xmlDoc.AppendChild(node);//创建Xml根节点XmlNoderoot=xmlDoc.CreateElement("books");xmlDoc.AppendChild(root);XmlNoderoot1=xmlDoc.CreateElement("book");root.AppendChild(root1);//创建子节点CreateNode(xmlDoc,root1,"author","追逐时光者");CreateNode(xmlDoc,root1,"title","XML学习教程");CreateNode(xmlDoc,root1,"publisher","时光出版社");//将文件保存到指定位置xmlDoc.Save("D://xmlSampleCreateFile.xml");}///<summary>///创建节点///</summary>///<paramname="xmlDoc">xml文档</param>///<paramname="parentNode">Xml父节点</param>///<paramname="name">节点名</param>///<paramname="value">节点值</param>///publicvoidCreateNode(XmlDocumentxmlDoc,XmlNodeparentNode,stringname,stringvalue){//创建对应Xml节点元素XmlNodenode=xmlDoc.CreateNode(XmlNodeType.Element,name,null);node.InnerText=value;parentNode.AppendChild(node);}
创建生成的Xml文件
<?xmlversion="1.0"encoding="utf-8"?><books><book><author>追逐时光者</author><title>XML学习教程</title><publisher>时光出版社</publisher></book></books>
C#在XML文件添加节点
这次我们是在上一次新建的XML文件中做操作,在book二级节点下添加一个新的节点名为publishdate(发布时间),该节点的value为2022-03-26。
privatestaticvoidAppendNode(){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load("D://xmlSampleCreateFile.xml");//加载Xml文件XmlNoderoot=xmlDoc.SelectSingleNode("books/book");//选择要添加子节点的book节点//创建一个新的Xml节点元素XmlNodenode=xmlDoc.CreateNode(XmlNodeType.Element,"publishdate",null);node.InnerText="2022-03-26";root.AppendChild(node);//将创建的item子节点添加到items节点的尾部xmlDoc.Save("D://AppendNodeFile.xml");//保存修改的Xml文件内容}
添加节点成功后的XML文件内容
<?xmlversion="1.0"encoding="utf-8"?><books><book><author>追逐时光者</author><title>XML学习教程</title><publisher>时光出版社</publisher><publishdate>2022-03-26</publishdate></book></books>
C#修改XML文件节点的数据
这次我们是在第一次新建的XML文件中做操作,把在book二级节点下的author的内容改成:大姚同学
privatestaticvoidUpdateXml(){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load("D://xmlSampleCreateFile.xml");//加载Xml文件XmlNodexns=xmlDoc.SelectSingleNode("books/book");//查找要修改的节点XmlNodeListxmlNodeList=xns.ChildNodes;//取出book节点下所有的子节点foreach(XmlNodexmlNodeinxmlNodeList){XmlElementxmlElement=(XmlElement)xmlNode;//将节点转换一下类型if(xmlElement.Name=="author")//判断该子节点是否是要查找的节点{xmlElement.InnerText="大姚同学";//设置新值break;}}xmlDoc.Save("D://UpdateXml.xml");//保存修改的Xml文件内容}
修改后的XML文件内容
<?xmlversion="1.0"encoding="utf-8"?><books><book><author>大姚同学</author><title>XML学习教程</title><publisher>时光出版社</publisher></book></books>
C#删除XML文件中的指定节点
这次我们是在第一次新建的XML文件中做操作,删除author节点。
privatestaticvoidDeleteXmlNode(){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load("D://xmlSampleCreateFile.xml");//加载Xml文件XmlNodexns=xmlDoc.SelectSingleNode("books/book");//查找要删除的根节点#region删除author节点vardelNode=xmlDoc.SelectSingleNode("books/book/"+"author");xns.RemoveChild(delNode);#endregionxmlDoc.Save("D://DeleteXmlNode.xml");//保存操作后的Xml文件内容}
C#清空指定XML节点数据
这次我们是在第一次新建的XML文件中做操作,清空author节点下的数据。
privatestaticvoidClearDataXmlNode(){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load("D://xmlSampleCreateFile.xml");//加载Xml文件XmlNodexns=xmlDoc.SelectSingleNode("books/book");//查找要删除的根节点#region清空author节点下的数据XmlNodeListxmlNodeList=xns.ChildNodes;//取出book节点下所有的子节点foreach(XmlNodexmlNodeinxmlNodeList){XmlElementxmlElement=(XmlElement)xmlNode;//将节点转换一下类型if(xmlElement.Name=="author")//判断该子节点是否是要查找的节点{//清空author节点下的数据xmlElement.RemoveAll();//删除该节点的全部内容}}#endregionxmlDoc.Save("D://ClearDataXmlNode.xml");//保存操作后的Xml文件内容}
“C#中XML文件内容增删改查的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!
推荐阅读
-
「原创」PHP实战-XML详细教程
-
在PHP中使用SPL库中的对象方法进行XML与数组的转换
虽说现在很多的服务提供商都会提供JSON接口供我们使用,但是,还是有不少的服务依然必须使用XML作为接口格式,这就需...
-
深入学习PHP中的JSON相关函数
在我们当年刚刚上班的那个年代,还全是XML的天下,但现在JSON数据格式已经是各种应用传输的事实标准了。最近几年开始学习...
-
wps打开word文件出现无法打开因为内容有问题的解决办法
-
php将xml转化对象的实例详解
XML文件$xml="123456";将文件转换成对象$objectxml=simplexml_load_...
-
Android中如何自定义xml属性
Android中如何自定义xml属性这篇“Android中如何自定...
-
.NET中XML序列化和反序列化常用类和属性是什么
.NET中XML序列化和反序列化常用类和属性是什么这篇“.NET中...
-
Python如何实现xml格式转txt格式
-
AJAX怎么使用XML文件进行交互式通信
AJAX怎么使用XML文件进行交互式通信本文小编为大家详细介绍“A...
-
HTML和XML的区别是什么