Xerces-C++ DOM编程指南(一).docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Xerces-CDOM编程指南(一)

Xerces-C++ DOM编程指南(一)2009-04-08 16:48设计目标 DOM的C++实现是基于阿帕奇推荐的DOM(/xerces-c/ApacheDOMC++Binding.htmlApache Recommended DOM C++ binding). 设计目标是为了满足如下需求:1.降低内存占用率.2.提高应用程序的性能,特别是那些服务器类型和多线程的应用程序.3.多处理系统中优异的延展性.4.比起Java来其风格更像C++ Xerces-C++对DOM Level 3的支持/xerces/c/sources/xerces-c-src_2_8_0.zipXerces-C++2.8.0包含了W3C DOM(文档对象模型)Level 3的部分实现,此实现是实验性的.详情请查看文档/xerces-c/dom3.htmlDOM Level 3 Support。使用DOM API 在您的程序代码中访问API#include xercesc/dom/DOM.hpp在头文件dom/DOM.hpp中,包含了DOM API类所需要的全部头文件类名 DOM类名都以“DOM”为前缀(如果类名本身不以“DOM”开头),例如“DOMNode”,这样是为了防止DOM类名与这样一些类名混淆:一些名称可能已经在应用程序或基于DOM的应用程序所必须链接的类中所使用了。 DOMDocument*?? myDocument; DOMNode*?????? aNode; DOMText*?????? someText;对象管理 应用程序在C++ DOM中将使用标准C++指针直接访问对象所实现的节点。思考下面的代码段: DOMNode*?????? aNode; DOMNode* docRootNode; aNode = someDocument-createElement(anElementName); docRootNode = someDocument-getDocumentElement(); docRootNode-appendChild(aNode);内存管理 C++ DOM的实现提供了一个release()方法用来释放所有的通过creatxxx工厂方法创建的“孤儿(即现在已不再使用的)”资源,对象销毁而释放的内存资源由C++ DOM的实现进行管理。更详细说明请查看Apache Recommended DOM C++ binding。使用DOMImplementation::createXXX创建对象 用户必须调用release() 函数来释放由DOMImplementation::createXXX创建的现在已经使用完毕的对象,如DOMBuilder, DOMWriter, DOMDocument, DOMDocumentType。试图访问已经被释放的对象将导致异常行为。1.当一个DOMDocument对象被释放后,所有与此对象相关的子对象以及其所拥有的对象(如DOMRange, DOMTreeWalker, DOMNodeIterator或任何孤立的节点)也将被释放。2.当复制一个DOMDocument对象时,这个复制文档对象不再与其父类文档对(original master document)象有任何联系,并且要显示的释放。3.当一个DOMDocumentType被插入一个DOMDocument后,这个DOMDocumentType也因此有了一个宿主(owner),当它的宿主(owner document)被释放后它也会被自动释放,此时如果释放这个节点时会产生一个DOMException::INVALID_ACCESS_ERR 异常。使用DOMDocument::createXXX创建对象 用户应该调用release()函数去显示释放任何一个孤立的节点。当一个孤立节点被释放后,与其相关联的子节点也将被释放。访问一个被释放的节点将导致异常行为。那些孤立的节点最终将会释放,如果现在还没有释放,那么在他们的宿主(owner document)被释放时他们就会被释放。试图释放一个有父亲的节点将会导致一个DOMException::INVALID_ACCESS_ERR异常。使用DOMDocumentRange::createRange或者DOMDocumentTraversal::createXXX创建对象 当DOMRange, DOMNodeIterator, DOMTreeWalker使用完毕后,用户应该调用release()函数。访问一个被释放的对象将导致异常行为。那些对象最终将会释放,如果现在还没有释放,那么在他们的宿主(owner document)被释放时他们就会被释放。如下有一个例子: // // Create a small

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档