在实际的应用开发中需要我们对xml进行添加节点和属性,动态的去完成,在这之前,先看看XmlNode和XmlElement之间的关系

1、XmlElement继承XmlLinkedNode又继承XmlNode,所以XmlElement是XmlNode的子集,那么从继承的关系来说,

XmlNode的属性,XmlElement也可以使用。

2、XmlNode是.Net提供的抽象类,不能直接实例化,只能通过XmlDocument的CreateNode方法来创建,但是

XmlElement则不需要,可以直接实例化创建

3、为节点添加属性的时候,可以直接通过XmlElement的SetAttribute来添加,也可以通过XmlNode的Attribute的add方法

来添加,同样添加文本节点的时候也是如此

4、XmlDocument是XmlNode的扩展类,包含了很多XmlNode没有的方法和属性,我们可以通过它将xml加载到内存中通过

Dom来处理,也可以通过它来创建节点等

下面就来看看如何添加节点和属性

1、首先我们需要创建一个节点元素,创建的时候我们可以通过XmlDocument的CreateElement来创建,或者是通过

XmlElement直接实例化,然后通过属性赋值,比如Name

2、创建一个XmlNode,也就是说创建的节点需要放在什么位置,然后创建的节点加入该XmlNode后面就可以了(可以通过

XmlNode的AppendChild方法来添加),比如加入根目录下面:XmlDocument.DocumentElement.PrependChild

(XmlElement),如果是其他节点下,可以通过Xmldocument的SelectSingleNode("//Titles//Title")来获得XmlNode

3、添加属性的时候,可以直接在创建XmlElment的时候,通过XmlElement的SetAttribute来为节点创建属性,或者是创建

一个XmlAttribute实例:XmlAttribute  xmlArr=XmlDocument.CreateAttribute("属性值"),然后通过XmlNode的

Attributes.add(XmlArribute)来添加

下面来具体看几个例子吧

<?xml version="1.0" encoding="utf-8"?>
<Titles>
  <Title ID="21" Name="王六" />
  <Title ID="20" Name="王五" />
  <Title ID="19" Name="李四" />
  <Title ID="18" Name="张三" />
  <Title ID="16" Name="asdf" />
  <Title ID="17" Name="12" />
</Titles>

添加方法

protected void Button3_Click(object sender, EventArgs e)
    {

//加载xml文档
        XmlDocument doc = new XmlDocument();
        string path = Server.MapPath("~/Title.xml");
        doc.Load(path);
        //创建节点
        XmlElement xmlElement = doc.CreateElement("Title");

//添加属性
        xmlElement.SetAttribute("ID", "21");
        xmlElement.SetAttribute("Name","王六");
        //将节点加入到指定的节点下
        XmlNode xml = doc.DocumentElement.PrependChild(xmlElement);
        doc.Save(path);
    }

或者是

protected void Button3_Click(object sender, EventArgs e)
    {
        XmlDocument doc = new XmlDocument();
        string path = Server.MapPath("~/Title.xml");
        doc.Load(path);
        //创建节点
        XmlElement xmlElement = doc.CreateElement("Title");
        将节点加入到指定的节点下
        XmlNode xmlTitle = doc.DocumentElement.PrependChild(xmlElement);
        //为该节点加入属性
        XmlAttribute xmlID = doc.CreateAttribute("ID");
        xmlID.Value = "22";
        xmlTitle.Attributes.Append(xmlID);

XmlAttribute xmlName = doc.CreateAttribute("Name");
        xmlName.InnerText = "小三";
        xmlTitle.Attributes.Append(xmlName);

doc.Save(path);
    }

如果不需要创建节点,直接通过SelectSingleNode(string path)来获取XmlNode,然后再添加属性或者文本节点等,如下:

protected void Button2_Click(object sender, EventArgs e)
    {
        XmlDocument doc = new XmlDocument();
        string path = Server.MapPath("~/XMLFile.xml");
        doc.Load(path);
        //创建一个book节点
        XmlNode xml = doc.SelectSingleNode("//TiTles//TiTle");
        XmlAttribute xmlAttribute = doc.CreateAttribute("ss");
        xmlAttribute.InnerText = "bb";
        xml.Attributes.Append(xmlAttribute);
        doc.Save(path);
    }

大概过程就是

1、通过XmlDocument加载xml文件到内存

2、创建XmlElement节点(可以通过SetAttribute添加属性)

3、创建和查找XmlNode以确保要放置的位置,将XmlElement添加到XmlNode中

4、如果没有通过SetAttribute来添加属性,后面可以创建XmlArribute来完成属性的添加

5、最后重新保存Xml:XmlDocument.save(xpath);

上面是自己的一些见解,如果有上面不对的地方,希望大家指出改正...

转载于:https://www.cnblogs.com/shuang121/archive/2011/02/24/1963796.html

Xml文档添加节点和属性相关推荐

  1. libxml2如何配合php使用,libxml2实现xml文档的节点的修改

    其实在网上很容易能找到使用libxml2来对xml文档进行创建.解析.修改等.我着这里主要是就自己学习的libxml2修改xml文档的节点进行一个简单的总结,方便自己以后回顾. 下面给出我写的一个例子 ...

  2. php循环获取xml节点,PHP_PHP遍历XML文档所有节点的方法,本文实例讲述了PHP遍历XML文档 - phpStudy...

    PHP遍历XML文档所有节点的方法 本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: J J J Manager Nati ...

  3. 容器环境下如何将NuGet包XML文档添加到Swagger

    容器环境下将NuGet包XML文档添加到Swagger 在.NET Core项目开发过程中,为了实现代码复用,我们将可以重复使用的部分拆分成一个个小的NuGet包.这些NuGet包可以在其他系统中复用 ...

  4. XML第二讲:格式正规的XML文档、XML文档的元素、属性、实体深度详解

    1. 对比XML与HTML下图所示: 从图中可以很好的判断出XML的优越性,XML更能显示出清晰的数据结构信息 2. XML与 HTML的区别 1) 元标记:表示从标记上面就可以描述内容本身是什么,比 ...

  5. 读取Xml文档的元素和属性

    <?xml version="1.0" encoding="utf-8" ?> <StuInfo>   <student> ...

  6. [FLASH IDE] [教程]Flash处理外部XML文档数据详细教程[ASP,JSP]

    准备: 首先你得有台电脑.其次是要装上Windows系统和Flash8. XML基础: 既然是处理XML文档.就要先来了解下XML文档.下面是我所了解的,有些是在Flash中用不到的. XML扩展标记 ...

  7. XML文档操作工具类

    1 /// <summary> 2 /// XML文档操作工具类 3 /// </summary> 4 public class XmlUtil 5 { 6 #region X ...

  8. Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构...

    分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...

  9. C#中XmlDocument读取和创建 XML 文档

    系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非 ...

最新文章

  1. mycat教程(一) —— 安装
  2. dell r220服务器配置oracle linux 阵列卡,如何在Dell服务器PERC5/6阵列卡配置RAID
  3. 实时通信服务中的语音解混响算法实践
  4. 乐鑫代理启明云端用图文带你一分钟快速了解ESP32-S3的功能特性:支持AI加速,更好的应用于图像、语音等识别,集成Wi-Fi + Bluetooth LE 5.0和高达44 个可编程 GPIO 管脚
  5. hihocoder #1465 : 后缀自动机五·重复旋律8
  6. MariaDB杂记(2)
  7. 梭子鱼智能安全透视平台揭穿精密伪装威胁
  8. css 超出文字头尾相接滚动_前端的一些雕虫小技,从100%和滚动条说起
  9. 年轻人不能“饥渴”太久,否则……
  10. JS 打印 iframe
  11. 网页中点击链接直接进入qq页面
  12. 《Android软件安全与逆向分析》— Android 书籍
  13. 第4节 常见软件安装-Mysql和SQLyog
  14. ffmpeg 处理字幕
  15. keytool条目_keytool常用命令
  16. CATIA怎么约束快捷键_CATIA常用操作快捷键
  17. 使用libx265对YUV进行h265编码
  18. 半导体 pn 结的原理
  19. 深度学习平台配置 Pytorch+RTX3090+Pycharm
  20. 云服务器怎么做成文件共享系统,怎样实现云服务器文件共享

热门文章

  1. PXE装机+kickstart无人值守安装
  2. 北邮-上机-提交错误解决及一些经验
  3. 设计模式——原型模式
  4. DataTable.Compute功能
  5. 千位分隔符转换为数字
  6. Installation failed, deleting ./composer.json.安装phpunit报错解决方案
  7. php把语音转成帧,[转载]用TCP/IP实现自己简单的应用程序协议:成帧器部分
  8. Python 之内置函数和匿名函数
  9. MySQL 之 索引
  10. grid autosport额外内容下载慢_清理大王app下载-清理大王v1.0安卓下载