动态创建TXMLDocument

var
  XML : TXMLDocument;
  DocIntf : IXMLDocument;
begin
  XML := TXMLDocument.Create(nil);
  DocIntf := XML;  //防止接口被自动释放,少了这一句会发生AV

  无宿主时一定要加后面这一句。

不过一般不要这样做为好,先来看看delphi中关于XML文档的几个单元。

    ·XMLIntf――包括了Borland自己定义的XML文档的接口;

  ·XMLDoc――是对XMLIntf中所定义接口的Borland实现;

  ·Xmldom――定义了DOM(文档对象模型)接口,这里对DOM接口进行了Borland的实现;

  ·Msxmldom――实现微软对Xmldom中定义的接口的实现,主要调用微软的COM对象来实现,对Xmldom中定义接口的封装;

  ·Xercesxmldom――Borland通过Xerces   XML   DOM方式来实现对Xmldom中定义接口的封装;   l   Oxmldom――Borland通过使用OpenXML来实现对Xmldom中定义接口的封装;

  通常情况下不通过直接使用TXMLDocument对象来进行XML文件的读取,而是使用XMLDoc单元中提供的几个有用的函数来读取XML文档,这些函数包括:

function   LoadXMLDocument(const   FileName:   DOMString):   IXMLDocument;

function   LoadXMLData(const   XMLData:   DOMString):   IXMLDocument;   overload;

function   LoadXMLData(const   XMLData:   string):   IXMLDocument;   overload;

function   NewXMLDocument(Version:   DOMString   =   '1.0 '):   IXMLDocument;  

  可以看出这些函数全部返回的是IXMLDocument接口,得到了IXMLDocument接口再进行文档的操作;这些函数都是通过创建TXMLDocument对象来实现对XML文档的读取的;其中NewXMLDocument仅仅创建一个IXMLDocument接口。

你可能感兴趣的:(document)