目录

  • 前言
  • 一、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元素节点相关推荐

  1. 【Unity3d】C#使用XmlDocument读写xml冒号节点问题

    问题场景 笔者在开发Unity3d package时发现在使用C#的XmlDocument读写XML文件时,读写带冒号的节点时,冒号前的内容给忽略了. 举个例子,以下是AndroidManifest. ...

  2. 通过XmlDocument读写Xml文档(转)

    通过XmlDocument读写Xml文档 有如下一段Xml: view sourceprint?<?xml version="1.0" encoding="utf- ...

  3. document 获得元素节点,属性节点,文本节点

    document 获得元素节点,属性节点,文本节点. ※Element在w3c xml DOM中,HTML没有. (添加,修改,替换,删除,都在xml dom中) http://www.w3schoo ...

  4. 初探JavaScript(一)——也谈元素节点、属性节点、文本节点

    Javascript大行其道的时候,怎么能少了我来凑凑热闹^_^ 基本上自己对于js的知识储备很少,先前有用过JQuery实现一些简单功能,要论起JS的前世今生,来龙去脉,我就一小白.抱起一本< ...

  5. document 获得元素节点,属性节点,文本节点。

    document 获得元素节点,属性节点,文本节点. ※Element在w3c xml DOM中,HTML没有. (添加,修改,替换,删除,都在xml dom中) http://www.w3schoo ...

  6. XML DOM 节点

    来自:w3cschool菜鸟教程 在 DOM 中,XML 文档中的每个成分都是一个节点. DOM 节点 根据 DOM,XML 文档中的每个成分都是一个节点. DOM 是这样规定的: 整个文档是一个文档 ...

  7. C# 通过ImportNode AppendChild方法合并XmlDocument,XML转为DataTable

    C# 通过ImportNode AppendChild方法合并XmlDocument,XML转为DataTable var doc1 = new XmlDocument(); var doc2 = n ...

  8. 元素节点,属性节点,文本节点,文档节点,分别的意思

    1.元素节点是HTML标签元素,元素节点主要提供了对元素标签名.子节点及属性的访问. 2.属性节点:一般是元素节点的属性,每一个 XML 属性算是一个属性节点. 3.文本节点:是DOM中用于呈现文本的 ...

  9. xml元素 标签 属性

    菜鸟一只,若有不正之处,还请批评指正. 1.形式: <标记>元素内容</标记> 开始标签和结束标签 加上属性 <标记 属性名="属性值">元素内 ...

最新文章

  1. 2014年第五届蓝桥杯决赛Java本科B组试题解析
  2. Spring data redis应用示例
  3. 【转】应用架构一团糟?如何将单体应用改造为微服务
  4. 将k8s制作成3D射击游戏,好玩到停不下来,附源码
  5. github代码_GitHub启动代码空间
  6. LeetCode MySQL 1421. 净现值查询
  7. 木兰许可证专业解读及首批采用“木兰”开源项目列表
  8. 简易 Vue 构建--篇四
  9. Python+sklearn使用线性回归算法预测儿童身高
  10. C语言——链表简单介绍
  11. C++ Reference: Standard C++ Library reference: C Library: cmath: cbrt
  12. 如何定位在测试中遇到的Bug?
  13. MTTR、MTTF、MTBF详解
  14. python 列表嵌套字典 添加修改删除_python3--字典,字典的嵌套,概念:分别赋值
  15. 关闭rabbitmq连接健康检查
  16. Android之延时操作方法
  17. 2014年实习生招聘之爱立信上海研发中心实习生招聘面试—2014/04/18
  18. AAAI 2022大奖出炉!9000投稿选出唯一杰出论文!中科院自动化所获Distinguished论文奖...
  19. vivado 编辑界面配色配置
  20. 【20140202】曼昆著《经济学原理》读书笔记

热门文章

  1. 2022年618投影仪保值品牌榜,当贝投影闲鱼保值率排行TOP1
  2. 地理信息系统(GIS)系列——Portal for ArcGIS
  3. mysql oracle创建视图索引吗_Oracle视图,索引,序列
  4. 运算器设计(计算机组成实验)1
  5. 局域网在线设备扫描工具 v1.0
  6. ANSYS workbench数值分析 新手教程(1)
  7. 用laravel写一个API
  8. 英特尔和amd学计算机,笔记本处理器intel和amd哪个好_有什么区别|性能对比-太平洋电脑网...
  9. 基于深度学习的行为识别方法综述
  10. 人员规范操作行为识别算法