DOM的工作方式是:首先将XML文档一次性的装入内存,然后根据文档中定义的元素和属性在内存中创建一个“树型结构”也就是一个文档对象模型,这里的含义其实是把文档对象化,文档中每个节点对应着模型中一个对象,而我们都知道对象提供编程接口,所以在Application中我们正是使用这组对象来访问XML文档进而操作XML文档。

下图阐述了Application和DOM交互的过程:

DOM在内存中创建树模型:

XML文档片段个:

<parent>

<child id="123">text here</child>

</parent>

内存中的树结构如下图:

C#处理DOM的主要步骤:

1.声明XmlDocument对象并装载XML文件或片段;

Xmldocument doc=new Xmldocument(); //不要忘记导入System.Xml

doc.load("test.xml");//装载xml文件

//doc.loadXml("<book>abc</book>");转载xml片段

2.声明XmlElement变量对象并用doc.DocumentElement来赋值(得到XML文件的根元素不是根节点)

XmlElement root=doc.DocumentElement();

3.查找结点再进行相应的操作:

1)查找单个节点:一种方法:用Get系列方法,如GetFirstChild();另一种方法是SelectSingleNode("相应的XPath字符串");

2)查找节点集有两个对象XmlNodelist和XmlNamedNodeMap,前者用得比较多,后者用于处理无序节点集处理XML片段。

//方法一

//XmlNodeList el=n.ChildNodes; 得到n的所有子节点集

//方法二

//XmlNodeList el=n.SelectNodes("book"); 得到节点名为book的节点集

//方法三

//XmlElement rootEle=doc.DocumentElement;

//XmlNodeList el=rootEle.GetElementsByTagName("book");

//方法四

//XmlNodeList el=doc.GetElementsByTagName("book");

4.创建新节点主要步骤:

1) 用XmlDocument对象并用XML填充其

2) 确定要插入的位置并定位到此位置

3) 创建节点(其实也可为:Element、Attribute、Text、Comment、CDATA或Processing &Instruction)

4) 再在XmlDocment对象中添加节点

(注意:添加节点只有三种方法而已。AppendChild()、InsertBefore()还有InsertAfter();)

(一):创建元素节点

XmlElement elem=doc.CreateElement("price");

XmlElement(对象).InnerText();

XmlNode(对象).CreateTextNode();

(二):为元素节点设置属性

SetAttribute()此方法是有则改,无则创.

(三):创建其他类型的节点

XmlDocument.CreateComment()方法进行注释节点

XmlDocument.CreateCDataSection()

XmlDocument.CreateProcessingInstruction()

5.修改和删除节点

ReplaceChild();

SetAttribute();

RemoveChild();

RemoveAttribute();

RemoveAll();

6.保存XML文档

xmlDocument.Save( XMLFileName );

两个重要类:XmlNode类和XmlDocument类

最新文章

  1. sharepoint2013的审核日志的时间区域设置
  2. iOS-数据持久化-偏好设置
  3. linux sort,uniq,cut,wc,tr命令详解
  4. csdn第八名
  5. Task相关
  6. 排序命令sort
  7. 进程控制的一些api
  8. web测试用例表(自用)
  9. 会员登录HTML
  10. Redis基础学习(一)&mdash;Redis的安装
  11. js实现超出一定字数隐藏并用省略号&quot;...&quot;代替,点击后又可进行展开和收起,
  12. linux系统莫名被黑的诡异经历
  13. 使用css3实现瀑布流布局效果
  14. JavaScript instanceof 运算符深入剖析【转载】
  15. BCB F12切换界面 显示异常
  16. JSP运行过程 JSP脚本 静态动态包含 jsp指令 jsp内置对象jsp四大作用域 jsp动作元素 EL表达式 JSTL 设计模式 JSP开发模式 EL内置对象
  17. LeetCode(68)-Compare Version Numbers
  18. Azure vm 扩展脚本自动部署Elasticsearch集群
  19. Linux系统下升级Python版本步骤(suse系统)
  20. Web前端新手经典学习路线

热门文章

  1. spring security原理-学习笔记2-核心组件
  2. WPF中的文本度量
  3. SpringCloud学习--Eureka 服务注册与发现
  4. linux 中 NTP 对时过程记录
  5. unity 内置shader
  6. 使用grep过滤make的输出内容
  7. iOS开发高级分享 - iOS上的设备标识符和指纹
  8. Flask:Flask中使用会话技术
  9. netcat的使用
  10. Dijkstra算法 笔记与思路整理