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类

C# XML解析之DOM模型的更多相关文章

  1. - XML 解析 总结 DOM SAX PULL MD

    目录 目录 XML 解析 总结 DOM SAX PULL MD 几种解析方式简介 要解析的内容 DOM 解析 代码 输出 SAX 解析 代码 输出 JDOM 解析 代码 输出 DOM4J 解析 代码 ...

  2. XML解析之DOM详解及与SAX解析方法的比较

    XML解析(DOM) XML文件解析方法介绍 我们所用到的NSXMLParser是采用SAX方法解析 SAX(Simple API for XML) 只能读,不能修改,只能顺序访问,适合解析大型XML ...

  3. xml解析之----DOM解析

    DOM模型(documentobject model) •DOM解析器在解析XML文档时,会把文档中的全部元素.依照其出现的层次关系.解析成一个个Node对象(节点). •在dom中.节点之间关系例如 ...

  4. 【Java】XML解析之DOM

    DOM介绍 DOM(Document Object Model)解析是官方提供的XML解析方式之一,使用时无需引入第三方包,代码编写简单,方便修改树结构,但是由于DOM解析时是将整个XML文件加载到内 ...

  5. Python XML解析之DOM

    DOM说明: DOM:Document Object Model API DOM是一种跨语言的XML解析机制,DOM把整个XML文件或字符串在内存中解析为树型结构方便访问. https://docs. ...

  6. XML解析(一) DOM解析

    XML解析技术主要有三种: (1)DOM(Document Object Model)文档对象模型:是 W3C 组织推荐的解析XML 的一种方式,即官方的XML解析技术. (2)SAX(Simple ...

  7. java xml解析方式(DOM、SAX、JDOM、DOM4J)

    XML值可扩展标记语言,是用来传输和存储数据的. XMl的特定: XMl文档必须包含根元素.该元素是所有其他元素的父元素.XML文档中的元素形成了一颗文档树,树中的每个元素都可存在子元素. 所有XML ...

  8. XML解析之DOM解析技术案例

    Java代码: package com.xushouwei.xml; import java.io.File; import javax.xml.parsers.DocumentBuilder; im ...

  9. XML解析(DOM、ElementTree)及转换为JSON

    xml.dom篇 DOM是Document Object Model的简称,XML 文档的高级树型表示.该模型并非只针对 Python,而是一种普通XML 模型.Python 的 DOM 包是基于 S ...

随机推荐

  1. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

  2. Unity修改脚本后调试

    修改脚本后调试有时候需要运行,为了提高效率可以设置编辑器中执行,同时也可以开启有效性检查(即更改面板变量即可刷新代码) [ExecuteInEditMode] public class XXXX: M ...

  3. POI 生成 word 文档 简单版(包括文字、表格、图片、字体样式设置等)

      POI 生成word 文档 一般有两种方法: ① word模板 生成word 文档 : ② 写代码直接生成 word 文档: 我这里演示的是第二种方法,即写代码生成 word文档,不多说废话,直接 ...

  4. 【Linux系列】Linux基础知识整理

    Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...

  5. 使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作

    以前写过ASP.NET Core 2.x的REST API文章,今年再更新一下到3.0版本. 先决条件 我在B站有一个非常入门的ASP.NET Core 3.0的视频教程,如果您对ASP.NET Co ...

  6. js 面试题解析(一)

    1.call和apply的区别. 当需要传的参数是一个数组时,使用apply更加方便;而使用call时需要将数组展开,将数组中的每一项单独传入. 当需要传入的参数大于3个时,call的性能要略优于ap ...

  7. [系列] Go gRPC 调试工具

    目录 概述 写一个 gRPC API grpcui 使用 go-gin-api 系列文章 概述 最近这段时间工作挺忙的,发现已经 3 周没更文了... 感谢你们还在,今天给大家分享一款 gRPC 的调 ...

  8. C#中的取整函数

    先放百度的 Math.Ceiling();向上取整 Math.Ceiling()向上取整: d = 4.56789 string res = Math.Ceiling(Convert.ToDecima ...

  9. 百度艾尼ERNIE专场再入魔都,11月23日线下开讲!

    这个十一月,是属于深度学习开发者们的秋季盛宴.『WAVE Summit+』2019 深度学习开发者秋季峰会刚刚落下帷幕,基于ERNIE的语义理解工具套件也在此次峰会上全新发布,旨在为企业级开发者提供更 ...

  10. Python2.x安装教程及环境变量配置

    下载Python Python的官网是:http://www.python.org/ ​ ​ 进入官网,也可以找到对应的下载页面:http://www.python.org/download/ ​ 安 ...