• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

C# XmlDocument处理XML元素节点

武飞扬头像
Lightbx
帮助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操作XML
            XmlDocument 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());
        }

总结

第一次写博客,以后想将学习到的东西都记录下来
当笔记去用。 😃

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhghejhf
系列文章
更多 icon
同类精品
更多 icon
继续加载