C# XmlDocument处理XML元素节点
目录
- 前言
- 一、XmlDocument
- 1.简单流程
- 2.XmlNode和XmlElement的区别
- 二、代码
- 1.简单代码
- 总结
前言
想修改一个XML文件的属性值,简单的代码实现
一、XmlDocument
Net中的XmlDocument类。它支持并扩展了W3C XML DOM标准。可使用此类在文档中加载、验证、编辑、添加和放置 XML。
它将整个XML文档都先装载进内存中,然后再对XML文档进行操作,所以如果XML文档内容过大,不建议使用XmlDocument类,因为会消耗过多内存。
对于很大的XML文档,可以使用XmlReader类来读取。因为XmlReader使用Steam(流)来读取文件,任何时候在内存中只有当前节点,但它也有它的不足,它是只读的,仅向前的,不能在文档中执行向后导航操作,所以不会对内存造成太大的消耗。
1.简单流程
使用XmlDocument读取XML,并遍历根节点下的所有子节点,将XmlNode节点转为XmlElement进行处理。
2.XmlNode和XmlElement的区别
1、通过继承关系XmlElement继承自XmlLinkedNode又继承自XmlNode类,由此可知XmlElement是XmlNode的子类。我们知道子类继承了父类所有的属性和方法,因此,XmlNode所拥有的方法和属性,在XmlElement类中也是可以使用的。
2、XmlElement是特殊的XmlNode类,Xml节点有多种类型:属性节点、注释节点、文本节点、元素节点等。也就是XmlNode是这多种节点的统称。但是XmlElement专门指的就是元素节点。
二、代码
1.简单代码
代码如下(示例):
// 采用XmlDocument操作XMLXmlDocument doc = new XmlDocument();doc.Load(@"Monster-S17-2-2.xml");// 获取根节点XmlNode root = doc.SelectSingleNode("MonsterList");// 获取根节点下的所有子节点XmlNodeList child = root.ChildNodes;// 循环遍历修改XML文件foreach (XmlNode children in child){// 得到web节点的所有子节点XmlElement xe = (XmlElement)children;//将节点转换一下类型SetXml(xe, "MaxLife",5);SetXml(xe, "DamageMin", 3.5f);SetXml(xe, "DamageMax", 2.5f);SetXml(xe, "DamageMax", 2.5f);SetXml(xe, "ElementalDefense", 6);SetXml(xe, "ElementalDamageMin", 1.6f);SetXml(xe, "ElementalDamageMax", 1.6f);}// 保存修改doc.Save(@"Monster-S17-2-3.xml");
public static void SetXml(XmlElement xe, string node,float times){string sMaxlife = xe.GetAttribute(node);int nodeData = int.Parse(sMaxlife);nodeData = (int)(nodeData * times);xe.SetAttribute(node, nodeData.ToString());}
总结
第一次写博客,以后想将学习到的东西都记录下来
当笔记去用。
C# XmlDocument处理XML元素节点相关推荐
- 【Unity3d】C#使用XmlDocument读写xml冒号节点问题
问题场景 笔者在开发Unity3d package时发现在使用C#的XmlDocument读写XML文件时,读写带冒号的节点时,冒号前的内容给忽略了. 举个例子,以下是AndroidManifest. ...
- 通过XmlDocument读写Xml文档(转)
通过XmlDocument读写Xml文档 有如下一段Xml: view sourceprint?<?xml version="1.0" encoding="utf- ...
- document 获得元素节点,属性节点,文本节点
document 获得元素节点,属性节点,文本节点. ※Element在w3c xml DOM中,HTML没有. (添加,修改,替换,删除,都在xml dom中) http://www.w3schoo ...
- 初探JavaScript(一)——也谈元素节点、属性节点、文本节点
Javascript大行其道的时候,怎么能少了我来凑凑热闹^_^ 基本上自己对于js的知识储备很少,先前有用过JQuery实现一些简单功能,要论起JS的前世今生,来龙去脉,我就一小白.抱起一本< ...
- document 获得元素节点,属性节点,文本节点。
document 获得元素节点,属性节点,文本节点. ※Element在w3c xml DOM中,HTML没有. (添加,修改,替换,删除,都在xml dom中) http://www.w3schoo ...
- XML DOM 节点
来自:w3cschool菜鸟教程 在 DOM 中,XML 文档中的每个成分都是一个节点. DOM 节点 根据 DOM,XML 文档中的每个成分都是一个节点. DOM 是这样规定的: 整个文档是一个文档 ...
- C# 通过ImportNode AppendChild方法合并XmlDocument,XML转为DataTable
C# 通过ImportNode AppendChild方法合并XmlDocument,XML转为DataTable var doc1 = new XmlDocument(); var doc2 = n ...
- 元素节点,属性节点,文本节点,文档节点,分别的意思
1.元素节点是HTML标签元素,元素节点主要提供了对元素标签名.子节点及属性的访问. 2.属性节点:一般是元素节点的属性,每一个 XML 属性算是一个属性节点. 3.文本节点:是DOM中用于呈现文本的 ...
- xml元素 标签 属性
菜鸟一只,若有不正之处,还请批评指正. 1.形式: <标记>元素内容</标记> 开始标签和结束标签 加上属性 <标记 属性名="属性值">元素内 ...
最新文章
- 2014年第五届蓝桥杯决赛Java本科B组试题解析
- Spring data redis应用示例
- 【转】应用架构一团糟?如何将单体应用改造为微服务
- 将k8s制作成3D射击游戏,好玩到停不下来,附源码
- github代码_GitHub启动代码空间
- LeetCode MySQL 1421. 净现值查询
- 木兰许可证专业解读及首批采用“木兰”开源项目列表
- 简易 Vue 构建--篇四
- Python+sklearn使用线性回归算法预测儿童身高
- C语言——链表简单介绍
- C++ Reference: Standard C++ Library reference: C Library: cmath: cbrt
- 如何定位在测试中遇到的Bug?
- MTTR、MTTF、MTBF详解
- python 列表嵌套字典 添加修改删除_python3--字典,字典的嵌套,概念:分别赋值
- 关闭rabbitmq连接健康检查
- Android之延时操作方法
- 2014年实习生招聘之爱立信上海研发中心实习生招聘面试—2014/04/18
- AAAI 2022大奖出炉!9000投稿选出唯一杰出论文!中科院自动化所获Distinguished论文奖...
- vivado 编辑界面配色配置
- 【20140202】曼昆著《经济学原理》读书笔记
热门文章
- 2022年618投影仪保值品牌榜,当贝投影闲鱼保值率排行TOP1
- 地理信息系统(GIS)系列——Portal for ArcGIS
- mysql oracle创建视图索引吗_Oracle视图,索引,序列
- 运算器设计(计算机组成实验)1
- 局域网在线设备扫描工具 v1.0
- ANSYS workbench数值分析 新手教程(1)
- 用laravel写一个API
- 英特尔和amd学计算机,笔记本处理器intel和amd哪个好_有什么区别|性能对比-太平洋电脑网...
- 基于深度学习的行为识别方法综述
- 人员规范操作行为识别算法