delphi中无form的Unit中如何使用XMLDocument组件

来源:百度知道 编辑:UC知道 时间:2024/09/25 15:24:04
初学delphi,想写一个独立的处理XML文件的一个Unit,发现没有Form的Unit中好像不能编译XMLDocument,我想再其他Unit中调用这个Unit的into2()方法请指教。谢谢!
------------------------------------------------------
unit Unit2;

interface

uses
Dialogs, StdCtrls, xmldom, XMLIntf, msxmldom, XMLDoc;

var
XMLDocument1: TXMLDocument;
procedure into2();

implementation

procedure into2();
begin
XMLDocument1.LoadFromFile('c:\temp\test.xml'); ShowMessage(XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes['姓名'].Text);
end;

end.

你这样只声明XMLDocument1并没有创建啊.
XMLDocument1:=TXMLDocument.Create(nil);//创建
try
//干你的活....
XMLDocument1.LoadFromFile('c:\temp\test.xml');
ShowMessage(XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes['姓名'].Text);
finally
XMLDocument1.free;//用完要记得释放掉
end;

不是因为没有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;

end;

不是这个问题,use的问题,使用xmldocument要引用xmldoc,在interface下的uses里引用