- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DOM接口相关操作
DOM操作
XML最大的特点是以一种开放的自我描述方式定义了数据结构,并在描述数据内容的同时能突出对结构的描述,从而体现出数据之间的关系。这种特点使得XML在电子商务的应用上具有广泛的前景,并在一定程度上推动了分布式商务处理的发展。
在企业内部集成分布式商务处理是一项艰巨的工作,而在企业之间进行集成则具有非常高的成本。若要在本质上简化公司内部和公司之间协调商务处理,还需要进行大量的工作。基于XML的标准的出现,其目的是便于协调商务处理,并且不依赖于操作系统、编程模式或编程语言。而基于这种标准的全面的集成化环境,不仅为企业内部,更为使用互联网的企业之间提供了一种协调商务处理的迅速、简单、性价比很好的解决方案。
使用MSXML3.dll,名称空间为MSXML2。在StdAfx.h中引入。
#import msxml3.dll
using namespace MSXML2;
1、DOM树
所有类型的XML解析器都要求处理对象是“格式良好”的XML文档,有些还能根据DTD或XML Schema进行有效性验证,DOM(Document Object Model)解析器将XML文档一次性解析,生成一个位于内存中的对象树用以描述该文档。
DOM是一种与平台和语言无关的接口,它允许程序和脚本动态访问和修改文档的内容、结构和类型。它定义了一系列的对象和方法对DOM树的节点进行各种随机操作:
● Document对象:作为树的最高节点,Document对象是对整个文档进行操作的入口。
● Element和Attr对象:这些节点对象都是文档某一部分的映射,节点的定级层次恰好反映了文档的结构。
● Text对象:作为Element和Attr对象的子节点,Text对象表达了元素或属性的文本内容。Text节点不再包含任何子节点。
● 集合索引:DOM提供了几种集合索引方式,可以对节点按指定方式进行遍历。索引参数都是从0开始记数的。
DOM树中的所有节点都是从Node对象继承而来的。Node对象定义了一些最基本的属性和方法,利用这些方法可以实现对树的遍历,同时,根据属性还可以得知节点的名称、取值并判断其类型。
DOM 节点类型 实例 NODE_ELEMENT artist type=bandOffspring/artist NODE_ATTRIBUTE artist type=bandOffspring/artist NODE_TEXT artist type=bandOffspring/artist NODE_PROCESSING_INSTRUCTION ?xml version=1.0? NODE_DOCUMENT_TYPE !DOCTYPE compactdiscs SYSTEM cds.dtd
利用DOM,开发人员可以动态地创建XML、遍历文档、增加/删除/修改文档内容。DOM提供的API与编程语言无关,所以对一些DOM标准中没有明确定义的接口,不同解析器的实现方法也可能有所差别。为方便描述,本文的举例均采用MSXML DOM方案并用VB Script编写代码。
2、DOM树的结构
Document对象建立之后,就可以与XML文档或数据岛联系在一起。数据岛的加载方法是将数据岛ID赋给Document对象:
XML ID=“dsoDetails” src=“Books.xml”/XML
Set doc = dsoDetails.XMLDocument
数据岛暂不必管,这是ASP中的东西。
加载文档大体上分为三步:
1.使用CreateInstance方法创建分析器实例;
2.设置async属性为False,禁止异步加载,这样当文档加载完毕,控制权才会返回给调用进程,如果想获取文档加载状态,可以读取readyState属性值;
3.使用load方法加载指定文档。XML DOM还提供了一种loadXML的方法可以把XML字符串加载到DOM树中,使用时只要把XML字符串直接作为该方法的参数即可。
常用的类型:
IXMLDOMDocumentPtr docPtr;
IXMLDOMNodePtr DOMNodePtr;
IXMLDOMNodeListPtr NodeListPtr;
加载一个文档或者一段XML的方法:
CoInitialize(NULL);
docPtr.CreateInstance(msxml2.domdocument);
// load a document
_variant_t varXml(book1.xml);需要加载的XML文档
_variant_t varOut((bool)TRUE);
v
文档评论(0)