C#读写xml文件的常用方法
已知有一个XML文件(bookshop.xml)如下:
- <?xml version="1.0" encoding="gb2312" ?>
- <bookshop>
- <book genre="fantasy" ISBN="2-2312-2">
- <title>Oberon Legacy</title>
- <author>Eva</author>
- <price>56.5</price>
- </book>
- </bookshop>
下面看看是怎样读写xml文件的:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Xml;
- namespace ConsoleApplication1
- {
- class Program
- {
- XmlDocument xmlDoc;
- ///<summary>
- /// 插入节点
- ///</summary>
- publicvoid InsertNode()
- {
- xmlDoc =new XmlDocument();
- xmlDoc.Load("bookshop.xml"); //加载xml文件
- /*从指定的字符创加载xml文件 例如:
- xmlDoc.LoadXml("(<Book bookID='B001'><BookName>jeff</BookName><price>45.6</price></Book>)");
- */
- XmlNode root = xmlDoc.SelectSingleNode("bookshop");//查找﹤bookstore﹥
- XmlElement xe1 = xmlDoc.CreateElement("book");//创建一个﹤book﹥节点
- xe1.SetAttribute("genre", "Sky_Kwolf");//设置该节点genre属性
- xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性
- XmlElement xesub1 = xmlDoc.CreateElement("title");
- xesub1.InnerText ="CSS禅意花园";//设置节点的文本值
- xe1.AppendChild(xesub1);//添加到﹤book﹥节点中
- XmlElement xesub2 = xmlDoc.CreateElement("author");
- xesub2.InnerText ="Jeff";
- xe1.AppendChild(xesub2);
- XmlElement xesub3 = xmlDoc.CreateElement("price");
- xesub3.InnerText ="58.3";
- xe1.AppendChild(xesub3);
- root.AppendChild(xe1);//添加到﹤bookshop﹥节点中
- xmlDoc.Save("bookshop.xml"); //保存其更改
- }
- ///<summary>
- /// 修改节点
- ///</summary>
- publicvoid UpdateNode()
- {
- xmlDoc =new XmlDocument();
- xmlDoc.Load("bookshop.xml"); //加载xml文件
- //获取bookshop节点的所有子节点
- XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookshop").ChildNodes;
- //遍历所有子节点
- foreach (XmlNode xn in nodeList)
- {
- XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
- if (xe.GetAttribute("genre") =="Sky_Kwolf")//如果genre属性值为“Sky_Kwolf”
- {
- xe.SetAttribute("genre", "update Sky_Kwolf"); //则修改该属性为“update Sky_Kwolf”
- XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
- foreach (XmlNode xn1 in nls)//遍历
- {
- XmlElement xe2 = (XmlElement)xn1; //转换类型
- if (xe2.Name =="author")//如果找到
- {
- xe2.InnerText ="jason";//则修改
- break;//找到退出
- }
- }
- break;
- }
- }
- xmlDoc.Save("bookshop.xml");//保存。
- }
- //显示xml数据
- publicvoid ShowXml()
- {
- xmlDoc =new XmlDocument();
- xmlDoc.Load("bookshop.xml"); //加载xml文件
- XmlNode xn = xmlDoc.SelectSingleNode("bookshop");
- XmlNodeList xnl = xn.ChildNodes;
- foreach (XmlNode xnf in xnl)
- {
- XmlElement xe = (XmlElement)xnf;
- Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
- Console.WriteLine(xe.GetAttribute("ISBN"));
- XmlNodeList xnf1 = xe.ChildNodes;
- foreach (XmlNode xn2 in xnf1)
- {
- Console.WriteLine(xn2.InnerText);//显示子节点点文本
- }
- }
- }
- ///<summary>
- /// 删除节点
- ///</summary>
- publicvoid DeleteNode()
- {
- xmlDoc =new XmlDocument();
- xmlDoc.Load("bookshop.xml"); //加载xml文件
- XmlNodeList xnl = xmlDoc.SelectSingleNode("bookshop").ChildNodes;
- foreach (XmlNode xn in xnl)
- {
- XmlElement xe = (XmlElement)xn;
- if (xe.GetAttribute("genre") =="fantasy")
- {
- xe.RemoveAttribute("genre");//删除genre属性
- }
- elseif (xe.GetAttribute("genre") =="update Sky_Kwolf")
- {
- xe.RemoveAll();//删除该节点的全部内容
- }
- }
- xmlDoc.Save("bookshop.xml");
- }
- staticvoid Main(string[] args)
- {
- Program p =new Program();
- p.ShowXml();
- Console.ReadLine();
- }
- }
- }
代码
- XmlDocument XmlDoc = null;
- XmlDoc = new XmlDocument();
- XmlDeclaration dec = XmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
- XmlDoc.AppendChild(dec);
- XmlElement root = XmlDoc.CreateElement("message");
- XmlDoc.AppendChild(root);
- XmlElement eName;
- XmlNode M_Root = XmlDoc.SelectSingleNode("message");
- XmlNode M_Root1;
- XmlElement head = XmlDoc.CreateElement("header");
- head.SetAttribute("checksum", "2e11193e4d27dc9b0600de7b2586b1e4");
- root.AppendChild(head);
- eName = XmlDoc.CreateElement("bizid");//创建节点
- eName.InnerXml = "";
- head.AppendChild(eName);
- eName = XmlDoc.CreateElement("body");//创建节点
- eName.InnerXml = "";
- head.AppendChild(eName);
- XmlElement cont = XmlDoc.CreateElement("content");
- root.AppendChild(cont);
- M_Root1 = XmlDoc.SelectSingleNode("message").LastChild;
- XmlElement table = XmlDoc.CreateElement("Table");
- table.SetAttribute("count", "");
- cont.AppendChild(table);
- XmlElement row = XmlDoc.CreateElement("row");
- row.SetAttribute("id", "");
- table.AppendChild(row);
- eName = XmlDoc.CreateElement("column");//创建节点
- eName.SetAttribute("type", "String");
- eName.SetAttribute("id", "BT");
- eName.SetAttribute("desc", "题名");
- eName.InnerXml = "<![CDATA[" + ds.Tables[].Rows[i]["BT"].ToString() + "]]>";
- row.AppendChild(eName);
- string file = FilePath + ds.Tables[].Rows[i]["ID"].ToString() + "REST.XML";
- XmlDoc.Save(file); //保存XML
- return XmlDoc.InnerXml;//显示XML
C#读写xml文件的常用方法的更多相关文章
- PHP读写XML文件的四种方法
PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介 ...
- Java 读写XML文件 API--org.dom4j
om4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,同时它也是一个开放源代码的软件 ...
- Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件
Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...
- cocos2d-x 读写 xml 文件
cocos2d-x 读写 xml 文件 A product of cheungmine使用cocos2d-x开发2d游戏确实方便,但是对于一般的小游戏,经常需要的工作是UI布局设计和调整,代码改来改去 ...
- java通过dom读写xml文件
java通过dom读写xml文件 要读的xml文件 <?xml version="1.0" encoding="GB2312"?><学生花名册 ...
- C# 读写XML文件的方法
C# 读写XML文件的方法 一.写XML文件 XmlDocument xmlDocument = new XmlDocument();xmlDocument.AppendChild(xmlDocume ...
- VC 使用msxml6.dll动态链接库中的函数读写XML文件
VC 使用msxml6.dll动态链接库中的函数读写XML文件 目录 1 引言 2 .dll使用方法 3 常用函数总结 4 实例应用 5 运行效果预览 6 补充说明 7 不足之处 8 更新 引言: ...
- 【VS开发】【计算机视觉】OpenCV读写xml文件《C++版本》
OpenCV FileStorage类读写XML/YML文件 在OpenCV程序中,需要保存中间结果的时候常常会使用.xml / .yml文件,opencv2.0之前都是使用C风格的代码,当时读写XM ...
- Spring读写xml文件
一.如果只是读取 新建一个 xml 文件,需要满足Spring格式: <?xml version="1.0" encoding="UTF-8"?> ...
随机推荐
- css绝对定位问题
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- “请运行Chkdsk工具”怎么解决
今天重新系统,想从移动硬盘中拷贝数据,但是老是提示:“请运行Chkdsk工具” 于是在百度搜索一下,有人提供的解决方案很不错,在些引用一下,以备忘! 电脑上经常遇到这样的提示“某某某文件已损坏且无法读 ...
- Array,ArrayList、List<T>、HashSet<T>、LinkedList<T>与Dictionary<K,V>
Array: 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. 但是数组存在一些不足的地方.在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候 ...
- UUID生成
>>>Arch Linux # uuidgen From: http://os.51cto.com/art/200709/56613.htm >>>Debian j ...
- Django base view
class django.views.generic.base.View 它是基类的基类,其它View基类都是从这继承的. 官例: from django.http import HttpRespon ...
- IIS7 rename application or site
rename site 比较容易,在IIS里面就可以直接 rename,也可以用 cmd 的方式 1. 打开 cmd 2. cd C:\Windows\System32\inetsrv 3. appc ...
- Flex 加载tiff
gis系统常常要加载tiff,因为好多土地证书,各种文件都是扫描件,如果你是用as来写的前台,怎么加载呢,顺便说下用插件AlternaTIFF也是可以得不过浏览器加载这么多插件是不太好的. 首先TIF ...
- Thinkphp源码分析系列–开篇
目前国内比较流行的php框架由thinkphp,yii,Zend Framework,CodeIgniter等.一直觉得自己在php方面还是一个小学生,只会用别人的框架,自己也没有写过,当然不是自己不 ...
- Servlet Cookie处理
Servlet Cookie 处理 Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息.Java Servlet 显然支持 HTTP Cookie. 识别返回用户包括三个步骤: 服务 ...
- Django过滤器列表
Django 模板过滤器也是我们在以后基于 Django 网站开发过程中会经常遇到的,如显示格式的转换.判断处理等.以下是 Django 过滤器列表,希望对为大家的开发带来一些方便. 一.形式:小写 ...