微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.NET中对XML文件的操作资料未完

Visual Studio 中的 .NET Framework 编程——XML 文档和数据(http://msdn.microsoft.com/zh-cn/library/2bcctyt8(v=vs.80).aspx

1、.NET Framework 中的 XML 结构摘要(http://msdn.microsoft.com/zh-cn/library/4x4kfk8w(v=vs.80).aspx)

①基于流的 XML 分析
XmlReader 类提供对 XML 数据进行快速、非缓存、只进访问。XmlReader 对象使用 System.Xml.XmlReader.Create 方法创建。通过 XmlReaderSettings 类可以指定要在所创建的 XmlReader 对象上启用的功能集。
②基于流的 XML 创建
XmlWriter 类提供生成包含 XML 数据的流或文件的非缓存、只进方式。XmlWriter 对象使用 System.Xml.XmlWriter.Create 方法创建。通过 XmlWriterSettings 类可以指定要在所创建的 XmlWriter 对象上启用的功能集。
③内存中 XML 处理
XPathNavigator——XPathNavigator 类通过 XML 文档上的游标模型提供多个编辑选项和导航功能。XML 文档可以包含在 XPathDocument 或 XmlDocument 对象中。
XmlDocument 类——XmlDocument 及其相关类基于 W3C 文档对象模型 (DOM)。DOM 提供完全保真,例如保留空白和多个文本节点。节点可以使用基于熟悉的 DOM 模型的方法属性进行创建、插入、移除和修改

2、使用DOM模型处理XML数据

①XML 文档对象模型 (DOM)

XML 文档对象模型 (DOM) 类是 XML 文档的内存中表示形式。DOM 使您能够以编程方式读取、处理和修改 XML 文档。XmlReader 类也读取 XML,但它提供非缓存的只进、只读访问。这意味着使用 XmlReader 无法编辑属性值或元素内容,也无法插入和移除节点。编辑是 DOM 的主要功能。XML 数据在内存中表示是常见的结构化方法,尽管实际的 XML 数据在文件中时或从另一个对象传入时以线性方式存储。XmlNode 对象是 DOM 树中的基本对象。XmlDocument 类(扩展 XmlNode)支持用于对整个文档执行操作(例如,将文档加载到内存中或将 XML 保存到文件中)的方法。此外,XmlDocument 提供了查看和处理整个 XML 文档中的节点的方法

在将 XML 数据读入内存,以更改其结构、添加或移除节点或者与在元素包含的文本中一样修改节点所保存的数据时,DOM 最有用。不过,在其他方案中,还有其他比 DOM 更快的类。要对 XML 进行快速非缓存只进流访问,请使用 XmlReader 和 XmlWriter。如果需要用游标模型和 XPath 进行随机访问,请使用 XPathNavigator 类。

②XML 节点类型(http://msdn.microsoft.com/zh-cn/library/3k5w5zc3(v=vs.80).aspxXML 文档对象模型 (DOM)层次结构(http://msdn.microsoft.com/zh-cn/library/xe9470fe(v=vs.80).aspx

有两种创建 XML 文档的方法。一种方法是创建不带参数的 XmlDocument。另一种方法是创建一个 XmlDocument 并将 XmlNaMetable 作为参数传递给它。下面的示例显示如何不使用任何参数创建一个新的空 XmlDocument。
创建文档后,可通过 Load 方法从字符串、流、URL、文本读取器或 XmlReader 派生类为该文档加载数据。还有另一种加载方法,即 LoadXML 方法,此方法从字符串中读取 XML。
④将XML文档读入DOM

XML 信息从不同的格式读入内存。读取源包括字符串、流、URL、文本读取器或XmlReader的派生类。Load方法将文档置入内存中并包含可用于从每个不同的格式中获取数据的重载方法。还存在LoadXml方法,该方法从字符串中读取 XML。不同的 Load 方法影响在加载 XML 文档对象模型 (DOM) 时创建的节点。Load方法的区别:

创建空白节点加载文档时,可以设置保留空白并在文档树中创建 XmlWhitespace 节点的选项。若要创建空白节点,请将 PreserveWhitespace 属性设置为 true。如果文档从读取器加载,只有 XmlTextReader 上的 WhitespaceHandling 属性未设置为 WhitespaceHandling.None 时,XmlDocument 类上 PreserveWhitespace 标志属性的设置才会影响 XmlWhitespace 节点的创建,读取器上 WhitespaceHandling 属性的值优先于 XmlDocument 上该标志的设置。

从特定节点开始加载 XML 或加载整个 XML 文档:如果读取器处于初始状态,Load 将使用读取器中的全部内容,并通过读取器中的所有数据生成 XML 文档对象模型 (DOM)。如果读取器已位于文档中某个位置的节点上,并且将读取器传递给 Load 方法,Load 会尝试将当前节点及其所有同辈节点(直到关闭当前深度的结束标记)读入内存。如果读取器定位于对于文档的根级别来说无效的叶节点(如空白或属性节点),则读取器继续读取,直到定位在可用于根的节点上。文档在此时开始加载。

在 XML 加载时进行验证:方法是将架构验证XmlReader传递给 XmlDocument 类的Load方法,也可以在 DOM 中使用 XmlDocument 类的Validate方法来验证以前未经过验证的 XML 文档。(http://msdn.microsoft.com/zh-cn/library/w5aahf2a(v=vs.80).aspx

⑤实体???

⑥将节点插入XML文档中

在DOM中新建节点:XmlDocument为所有节点类型提供了 create 方法

复制现有节点:ImportNode 方法是将节点或整个节点子树从一个 XmlDocument 复制到另一个 XmlDocument 的机制。

复制文档片段:可以创建一个 XmlDocumentFrament 节点,然后在它下面添加节点。

⑦节点、属性内容的选取——XPath(http://www.w3school.com.cn/xpath/index.asp

⑧移除XML文档中的节点、内容和值

移除节点:要移除 XML 文档对象模型 (DOM) 中的节点,请使用RemoveChild方法移除特定节点。要移除 DOM 中的多个节点,请使用RemoveAll方法移除当前节点的所有子级和属性

移除节点属性属性集合中移除它们(移除集合属性中的属性RemoveRemoveAllRemoveAt;直接移除节点属性RemoveAllAttributesRemoveAttributeAt)。一个替换方法获取元素,获取属性集合中的属性并直接移除属性节点。当移除在文档类型定义 (DTD) 中定义为属性属性时有特殊限制。除非移除了属性所属的元素,否则不能移除属性

移除节点内容使用DeleteData方法移除字符,该方法从节点中删除某个范围的字符。
修改XML文档中的节点、内容和值:使用Value属性更改节点的值用新节点替换节点来修改全部节点集( InnerXml 属性完成)。使用 ReplaceData 和 RemoveChild 方法将现有节点替换为新节点使用 AppendData InsertData ReplaceData 方法向从 XmlCharacterData 类继承的节点添加附加字符通过在从 XmlCharacterData 继承的节点类型上使用DeleteData方法移除某个范围的字符,以修改内容
⑩保存和写出文档

原文地址:https://www.jb51.cc/xml/299645.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。