1、可扩展标记语言(EXtensible Markup Language)简写为XML,1998年2月10日被确立为W3C标准。目前XML已经成为业界的焦点,很多技术包括.NET在内都是兼容或者基于XML标准。XML用途广泛,目前已经形成了非常完整的体系,很多平台都对其给予了很大的支持。XML也是.NET平台不可或缺的一个重要部分。本章简单介绍XML的基本概念,以及在VB.NET 2008中对XML的操作。17.1 XML基础17.2 基于DOM操作XML17.3 流式操作17.4 实例:图书信息管理XML版XML即可扩展性标记语言,是一种可以定义标记和语义的元标记语言。打开VB.NET 2008
2、,单击菜单栏中的【文件】【新建文件】命令,打开【新建文件】窗口,在该窗口的【模板】列表框中,选择【XML文件】,即可创建一个XML文件。1 2 3 丁渝4 教师5 6 None7 8 唱歌、跳舞9 10 11 类库都集中在System.Xml命名空间下,所以在直接使用.NET类库时,不要忘记添加IMPORT System.Xml。按照实现方式不同大致可以分为以下两类。(1)内存中XML处理。.NET Framework提供了3个用于在内存中处理XML数据的选项:LINQ to XML、XPathNavigator类和XmlDocument类。(2)基于流的XML处理。XmlWriter和Xml
3、Reader类提供一种非缓存的只进XML数据处理方式。基于DOM结构操作XML是.NET中最常用的编程方法,它的基本思路是将XML加载到内存形成DOM结构,然后以树形节点的方式操作文档。XML将数据组织为树状结构,DOM就是对这棵树的一个对象描述。Document对象代表了整个XML的文档,所有其他的对象,都以一定的顺序包含在Document对象之内,排列成一个树状的结构,可以通过遍历这棵树来得到XML文档的所有的内容,这也是对XML文档操作的起点。此外,Document还包含了创建其他对象的方法。下面代码是一个XML文档。12345VB.NET2008从入门到提高6张琴7XXX出版社8309
4、1011VisualStudio2008编程12李新13YYY出版社14351516在 XML 文档结构中,此图中的document表示整个XML文档,XmlDocument类(扩展 XmlNode)支持用于对整个文档执行操作。每个方框表示一个节点(称为 XmlNode 对象)。XmlNode 对象是 DOM 树中的基本对象。此外,XmlDocument 提供了查看和处理整个XML文档中的节点的方法。要使用DOM操作XML文档,首先要将XML文档加载到内存中,表示为一个XMLDocument对象。XML文件的加载可以使用XMLDocument类的方法,如下。Load:表示从指定的URL加载XM
5、L文档。URL既可以是本地文件,也可以是HTTP URL。Load方法有多个重载,详细内容可以查看SDK。LoadXml:表示从指定的字符串加载XML文档。将XML保存到特定位置可以使用XmlDocument类的Save方法。1 Dim xmlDoc As new Xml.XmlDocument()2 xmlDoc.Load(F:book.xml)3 xmlDoc.Save(F:book2.xml)在XML中添加节点可以使用下列XmlDocument类的方法。CreateNode:创建新节点。CreateTextNode:创建新节点,并指定文本。InsertBefore:在某节点之前插入新节点
6、。InsertAfter:在某节点之后插入新节点。类属性或方法解释XmlDocumentReplaceChild用新节点替换旧节点XmlNodeValue如果节点类型为Text,则表示文本InnerText节点的文本XmlElementGetAttribute返回指定属性的属性值GetAttributeNode返回指定的XmlAttributeAttributes节点属性列表SetAttribute设置指定属性的值SetAttributeNode添加一个新 XmlAttribute下面代码更新第一本书的标题,即book.xml的第一个book节点的title节点。1 Dim doc As Ne
7、w Xml.XmlDocument()2 doc.Load(F:book.xml)3 Dim root As Xml.XmlElement=doc.DocumentElement4 root.FirstChild.FirstChild.InnerText=更新的标题5 doc.Save(F:book4.xml)类属性或方法解释XmlNodeNodeType节点类型Attributes属性集ChildNodes子结点集XmlAttributeName属性名称Value属性值遍历所有节点和对树结构遍历类似,需要递归处理。类属性或方法解释XmlNodeFirstChild获取节点的第一个子级Last
8、Child获取节点的最后一个子级ChildNodes子结点集NextSibling获取紧接在该节点之后的节点PreviousSibling获取紧接在该节点之前的节点ParentNode获取该节点(对于可以具有父级的节点)的父级XmlDocumentGetElementsByTagName包含与指定名称匹配的所有子代元素的列表GetElementById获取具有指定 ID 的 XmlElement查找指定节点在XML操作中很常见,如果是遍历操作,一般用表格中XmlNode的属性;如果是根据节点ID或者查找同类型节点,则用XmlDocument的方法。在XML中删除节点可以使用XmlDocumen
9、t类的方法,如下。RemoveAll:表示移除当前节点的所有子节点和/或属性。RemoveChild:表示移除指定的子节点。流式操作最大的特点就是以时间换取空间。假如XML文档内容简短,那么缓存式访问明显比流式访问要简单;但是如果XML文档比较庞大,那么一次性读入内存中将会占用很大内存资源,且DOM结构过于复杂而影响检索性能,这个时候流式访问就明显优于缓存式的访问方式。在.NET类库中,XmlReader类实现流式读操作,XmlWriter类实现流式写操作。类属性或方法解释XmlReaderCreate创建一个新的XmlReader实例Read从流中读取下一个节点HasAttributes该值
10、指示当前节点是否有任何属性IsEmptyElement指示当前节点是否为空元素(例如)Name当前节点的限定名NodeType当前节点的类型Value当前节点的文本值ReadToNextSibling前进到下一个匹配的同级元素MoveToNextAttribute移动到下一个属性GetAttribute获取属性的值XmlWriterCreate创建一个新的 XmlWriter实例WriteStartElement写出指定的开始标记WriteComment写出包含指定文本的注释WriteEndElement关闭一个元素并弹出相应的命名空间范围WriteAttributeString写出具有指定值的属性WriteElementString写出包含字符串值的元素
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。