c# xml文件新增同级节点_C# xml文件的创建,修改和添加节点 。
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文件的创建,修改和添加节点 。相关推荐
- C# xml文件的创建,修改和添加节点 。
最近在做一个项目,设计到xml文件的传输,所以就研究了一下. ,.NET Framework完全支持XML DOM模式,但它不支持SAX模式..NET Framework支持两种不同的分析模式:XML ...
- 第十二讲 dom对象(DOM对象、document对象的常用方法、节点、查找结点、 查看/修改/删除属性节点、创建和增加节点)
一.查看节点 getElementById( ) 元素的ID名称来访问,返回对拥有指定id的第一个对象的引用 getElementsByName( ) 按元素的name名称来访问,返回带有指定名称的 ...
- c# xml文件新增同级节点_[C#.NET 拾遗补漏]08:强大的LINQ
大家好,这是 [C#.NET 拾遗补漏] 系列的第 08 篇文章,今天讲 C# 强大的 LINQ 查询.LINQ 是我最喜欢的 C# 语言特性之一. LINQ 是 Language INtegrate ...
- python写xml文件_用python写xml文件
def writeInfoToXml(filename, config_id, obj_name): from xml.dom.minidom import Document ''' eg: Web ...
- (超详细)Oracle 10g RAC 添加节点实验操作总结
Oracle 10g RAC 添加节点实验操作总结 目 录 RAC物理结构...3 一. 安装前准备及OS安装配置... 4 1.安装并配置新节点的虚拟机...4 2.节点三(dbi)的网络配置 ...
- android 读写文件 简书,Android 中的文件操作
Android 文件操作 概述 Android 中的文件操作主要涉及到两个部分,一个是内部存储的读写,一个是外部存储的读写两者的主要区别如下表: 内部存储 外部存储 始终可用 它并非始终可用,因为用户 ...
- tinyxml 读取文本节点_c++中用TINYXML解析XML文件
TinyXML介绍 最近做一个负载均衡的小项目,需要解析xml配置文件,用到了TinyXML,感觉使用起来很容易,给出一个使用TinyXML进行XML解析的简单例子,很多复杂的应用都可以基于本例子的方 ...
- XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML
XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...
- java dom4j 写xml文件_Java实现——Dom4j读写XML文件
1. dom4j概述 解析DOM4J是一个开源XML解析包,采用了Java集合框架并完全支持DOM,SAX和JAXP. 最大的特色是使用了大量的接口,主要接口都在org.dom4j里定义. 2. do ...
- ROS Learning-032 (提高篇-010 Launch)Launch 深入研究 --- (启动文件编程)ROS 的 XML语法简介...
ROS 提高篇 之 Launch 深入研究 - 01 - 启动文件的编程 - ROS 的 XML语法简介 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubu ...
最新文章
- 域客户端如何定位并登录域控制器
- 解决Unity协程无法同步返回的问题
- html 文件上传与移除,js jquery分别实现动态的文件上传操作按钮的添加和删除
- kubernetes dashboard backend源码剖析
- python中的基本数据结构
- 可变化的鸿蒙武器,DNF2018史诗改版大全 武器套装改版属性介绍
- 吴恩达机器学习4——神经网络
- ui自动化分享ppt_全面迎接自动化!微软公布RPA价格,将于4月2日正式上市
- java8 list统计(求和、最大、最小、平均)
- 【干货】常用EXE文件反编译工具
- 2021年最佳开源软件榜单出炉!
- 74LS138译码器的IP核设计
- 可控硅型号怎样识别_可控硅型号分类
- java info()方法_Java中的提供者getInfo()方法
- Android外部存储设备管理——vold挂载大容量存储设备
- 蓝桥杯第四届决赛 c++ B组 题目及个人题解 2013年
- Mosfet管开关管损耗、导通损耗、驱动损耗-计算方法公式及解释
- Matlab画根轨迹
- 【20保研】清华大学深圳国际研究生院电子信息工程(信息技术) 2019年优秀大学生暑期夏令营通知...
- 网站关键词怎么布局才更合理?
热门文章
- 软件定义网络:昨天今天明天
- 各个浏览器兼容性问题积累
- 利用Code First在MVC4中创建数据驱动应用程序
- android 城市列表 横屏,Android Launcher3去掉所有应用列表,横屏时左右两侧的留空...
- python中的成员运算符用于判断什么_Python3基础-表达式和运算符
- 拓端tecdat|R语言ARMA GARCH COPULA模型拟合股票收益率时间序列和模拟可视化
- 拓端tecdat|R语言使用二元回归将序数数据建模为多元GLM
- maven项目中操作mysql数据库案例
- 什么是java中的监听器_java中什么是监听器
- VScode报错“终端将被任务重用,按任意键关闭