C# xml文件的创建,修改和添加节点

2016年11月15日 17:26:08 luckyone906 阅读数 13533更多

最近在做一个项目,设计到xml文件的传输,所以就研究了一下。

,.NET Framework完全支持XML DOM模式,但它不支持SAX模式。.NET Framework支持两种不同的分析模式:XML DOM分析器(XMLDocument类)和XML阅读器(XMLTextReader类),不支持SAX分析器, 但这并不意味着它没有提供类似SAX分析器的功能。通过XML阅读器可以将SAX的所有的功能很容易的实现及更有效的运用。

但是我们一般运用最多的是DOM。

一、创建xml文件

using System.Xml;

using System.IO;//这个一定要写

XmlDocument xmlDoc = new XmlDocument();

//加入XML的声明段落,Save方法不再xml上写出独立属性

xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));

//加入根元素

XmlElement root = xmlDoc.CreateElement("ROOT");

xmlDoc.AppendChild(root);

XmlElement memberlist = xmlDoc.CreateElement("MEMBERLIST");

XmlElement memberA = xmlDoc.CreateElement("MEMBER");

memberA.SetAttribute("AGE", ">=29");

memberA.SetAttribute("SEX", "MALE");

XmlElement zs = xmlDoc.CreateElement("NAME");

zs.InnerText = "张三";

XmlElement ls = xmlDoc.CreateElement("NAME");

ls.InnerText = "李四";

memberA.AppendChild(zs);

memberA.AppendChild(ls);

XmlElement memberB = xmlDoc.CreateElement("MEMBER");

memberB.SetAttribute("AGE", ">=35");

memberB.SetAttribute("SEX", "MALE");

XmlElement ww = xmlDoc.CreateElement("NAME");

ww.InnerText = "王五";

XmlElement zl = xmlDoc.CreateElement("NAME");

zl.InnerText = "赵六";

memberB.AppendChild(ww);

memberB.AppendChild(zl);

memberlist.AppendChild(memberA);

memberlist.AppendChild(memberB);

root.AppendChild(memberlist);

xmlDoc.Save(xmlpath);

效果如下:

=29"SEX="MALE">

李四

*

=35"SEX="MALE">

王五

赵六

看上面成功倒是成功了,不过由于粗心,在*这行的NAME标签出错了。我想把第一个NAME改为张三,第二个NAME改为李四

二、修改xml文件

c#代码如下:

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlpath);

XmlNode memberlist = xmlDoc.SelectSingleNode("ROOT/MEMBERLIST");

XmlNodeList nodelist=memberlist.ChildNodes;

// XmlNodeList nodelist=xmlDoc.GetElementsByTagName("MEMBER");

foreach (XmlNode node in nodelist)

{

if (node.Attributes["AGE"].InnerText.ToString().Equals(">=29"))

{

node.ChildNodes[0].InnerText = "张三";

node.ChildNodes[1].InnerText = "李四";

break;

}

}

xmlDoc.Save(xmlpath);

MessageBox.Show("保存成功");

xml效果如下:

=29"SEX="MALE">

张三

李四

=35"SEX="MALE">

王五

赵六

这时候,如果增加人员的情况下,我还需要添加节点。

三、xml文件添加节点如下

c#代码如下

XmlDocument xmlDoc = new XmlDocument();

if (File.Exists(xmlpath))

{

xmlDoc.Load(xmlpath);

XmlNode memberlist = xmlDoc.SelectSingleNode("ROOT/MEMBERLIST");

XmlElement member = xmlDoc.CreateElement("MEMBER");

member.SetAttribute("AGE", "<29");

member.SetAttribute("SEX", "MAIL");

XmlElement lq = xmlDoc.CreateElement("NAME");

lq.InnerText = "六七";

member.AppendChild(lq);

memberlist.AppendChild(member);

xmlDoc.Save(xmlpath);

MessageBox.Show("添加成功");

}

else

{

MessageBox.Show("文件不存在");

}

效果如下:

<

=29"SEX="MALE">

张三

李四

=35"SEX="MALE">

王五

赵六

六七

<

有几点要记住了,XmlNode包含XmlElement,即XmlNode可以转化为XmlElement而XmlElement不可以转化为XmlNode.

xmDoc.selectSingleNode("节点名称").这个节点名称是他的路径。若是根节点当时只写名称就可以了,若是子节点,则需要些明从根节点到它的路径。

再就是遍历xml文件,这个就不记录了,上面这些操作会了,遍历就不是问题了。

c# xml文件新增同级节点_C# xml文件的创建,修改和添加节点 。相关推荐

  1. C# xml文件的创建,修改和添加节点 。

    最近在做一个项目,设计到xml文件的传输,所以就研究了一下. ,.NET Framework完全支持XML DOM模式,但它不支持SAX模式..NET Framework支持两种不同的分析模式:XML ...

  2. 第十二讲 dom对象(DOM对象、document对象的常用方法、节点、查找结点、 查看/修改/删除属性节点、创建和增加节点)

    一.查看节点 getElementById( ) 元素的ID名称来访问,返回对拥有指定id的第一个对象的引用 getElementsByName( )  按元素的name名称来访问,返回带有指定名称的 ...

  3. c# xml文件新增同级节点_[C#.NET 拾遗补漏]08:强大的LINQ

    大家好,这是 [C#.NET 拾遗补漏] 系列的第 08 篇文章,今天讲 C# 强大的 LINQ 查询.LINQ 是我最喜欢的 C# 语言特性之一. LINQ 是 Language INtegrate ...

  4. python写xml文件_用python写xml文件

    def writeInfoToXml(filename, config_id, obj_name): from xml.dom.minidom import Document ''' eg: Web ...

  5. (超详细)Oracle 10g RAC 添加节点实验操作总结

    Oracle 10g RAC 添加节点实验操作总结 目  录   RAC物理结构...3 一. 安装前准备及OS安装配置... 4 1.安装并配置新节点的虚拟机...4 2.节点三(dbi)的网络配置 ...

  6. android 读写文件 简书,Android 中的文件操作

    Android 文件操作 概述 Android 中的文件操作主要涉及到两个部分,一个是内部存储的读写,一个是外部存储的读写两者的主要区别如下表: 内部存储 外部存储 始终可用 它并非始终可用,因为用户 ...

  7. tinyxml 读取文本节点_c++中用TINYXML解析XML文件

    TinyXML介绍 最近做一个负载均衡的小项目,需要解析xml配置文件,用到了TinyXML,感觉使用起来很容易,给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方 ...

  8. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  9. java dom4j 写xml文件_Java实现——Dom4j读写XML文件

    1. dom4j概述 解析DOM4J是一个开源XML解析包,采用了Java集合框架并完全支持DOM,SAX和JAXP. 最大的特色是使用了大量的接口,主要接口都在org.dom4j里定义. 2. do ...

  10. ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介...

    ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...

最新文章

  1. 域客户端如何定位并登录域控制器
  2. 解决Unity协程无法同步返回的问题
  3. html 文件上传与移除,js jquery分别实现动态的文件上传操作按钮的添加和删除
  4. kubernetes dashboard backend源码剖析
  5. python中的基本数据结构
  6. 可变化的鸿蒙武器,DNF2018史诗改版大全 武器套装改版属性介绍
  7. 吴恩达机器学习4——神经网络
  8. ui自动化分享ppt_全面迎接自动化!微软公布RPA价格,将于4月2日正式上市
  9. java8 list统计(求和、最大、最小、平均)
  10. 【干货】常用EXE文件反编译工具
  11. 2021年最佳开源软件榜单出炉!
  12. 74LS138译码器的IP核设计
  13. 可控硅型号怎样识别_可控硅型号分类
  14. java info()方法_Java中的提供者getInfo()方法
  15. Android外部存储设备管理——vold挂载大容量存储设备
  16. 蓝桥杯第四届决赛 c++ B组 题目及个人题解 2013年
  17. Mosfet管开关管损耗、导通损耗、驱动损耗-计算方法公式及解释
  18. Matlab画根轨迹
  19. 【20保研】清华大学深圳国际研究生院电子信息工程(信息技术) 2019年优秀大学生暑期夏令营通知...
  20. 网站关键词怎么布局才更合理?

热门文章

  1. 软件定义网络:昨天今天明天
  2. 各个浏览器兼容性问题积累
  3. 利用Code First在MVC4中创建数据驱动应用程序
  4. android 城市列表 横屏,Android Launcher3去掉所有应用列表,横屏时左右两侧的留空...
  5. python中的成员运算符用于判断什么_Python3基础-表达式和运算符
  6. 拓端tecdat|R语言ARMA GARCH COPULA模型拟合股票收益率时间序列和模拟可视化
  7. 拓端tecdat|R语言使用二元回归将序数数据建模为多元GLM
  8. maven项目中操作mysql数据库案例
  9. 什么是java中的监听器_java中什么是监听器
  10. VScode报错“终端将被任务重用,按任意键关闭