delphi txmldocument报错 no active document

来源:互联网 发布:java cmd 运行jar包 编辑:程序博客网 时间:2024/06/06 01:22

delphi txmldocument报错 no active document,在控制台程序中。
主要表现是使用如下代码:
doc := TXMLDocument.Create(nil); 
或者
doc:= TXMLDocument.Create('c:\temp\temp.xml');

如果拖一个控件在form上或者使用TXMLDocument.Create(sefl);都是没有问题的。

txmldocument no active document

解决方案:在delphi xe8上测试通过

不是因为没有Form不能使用,是因为你的使用方法有问题,XMLDocument组件要这样使用:

uses
XmlDoc, xmlIntf;

var 
ixd: IXmlDocument;
root: IXmlNode;
begin
// 创建Xml文档
ixd := NewXmlDocument();
try
// 加载XML文件
ixd.LoadFromFile('C:\temp\text.xml');
// 激活以后才能使用
ixd.Active := true;
// 取得XML文档的根结点
root := ixd.ChildNodes.Last;

ShowMessage(root.ChildNodes.Nodes['姓名'].Text);
finally
//不需要进行释放,IXmlDocument是接口,置空以后会自动释放
ixd := nil;
end;






失败案例

procedure TMainForm.Button1Click(Sender:TObject);

Var

  XML:TXMLDocument;

  I:Integer;

begin

  XML:=TXMLDocument.Create(nil);

  XML.LoadFromFile(ExtractFilePath(Application.ExeName)+'demo.xml');

  XML.Active:=True;

  For I:=0 to XML.DocumentElement.ChildNodes.Count-1 do

  begin

     //do something

  end;

  XML.



0 0