简单的问题!求使用方法!可能对你有用,快来看! (100分)

N

nibul

Unregistered / Unconfirmed
GUEST, unregistred user!
在DELPHI的菜单file-new-other 中有一个为XML DATA BINDING的项目,用它可以与
XML数据文件进行帮定,我想知道它的使用方法。
 
你要先生成XML文件,然后才能使用啊,方法
savetofile('database',pfxml);
 
to Qv15
这个我知道,我是求使用方法。
 
用ClientDataSet可以直接Load XML文件,然后可以把它象数据表一样使用。
 
那就看它的help文件了。
 
需要Delphi6及以上版本的ClientDataSet
 
说的简单些:XMLDocument怎么用?
 
Delphi6 中XMLDocument的应用
XML文档是新一代的Web数据格式。它可以用树的形式储存一切数据。
下面介绍一下TXMLDocument控件的一些用法:
已定义:
XMLDoc: TXMLDocument;
EncoderMIME: TIdEncoderMIME;
DecoderMIME: TIdDecoderMIME;
xn:IXMLNode;
f:TFileStream;
EncoderMIME和DecoderMIME是Indy控件中的Mime工具,用来把所有类型的字符串转换为Mime(Base64)的ASCII码,
你用其他的编码方式也可以的,比如:UUE,XXE。
XN是XML文档的树结点。F是文件流。
首先,加载XML文档
XMLdoc.LoadFromFile(‘XML文档的文件名');
XMLdoc.Active:=true;
//使XML文档变为活动
再次,定位Xn在XML文档中的位置(假设是的二层的第四个节点)
xn:=XMLdoc.Node;
xn:=xn.ChildNodes.Nodes[1];
//节点数是从零开始的,所以要减一
xn:=xn.ChildNodes.Nodes[3];
接着,增加下一级节点
xn:=xn.AddChild(‘新的节点名字’)
xn.Text:=’节点的文本内容’
xn.Attributes['节点的第一个属性']:=’属性值’
xn.Attributes['节点的第二个属性']:=’属性值’
修改节点,(节点的名字是不能改的)
xn.Text:=’新的文本内容’
xn.Attributes['节点的第二个属性']:=’ 新的属性值’
删除节点Xn
xn.ParentNode.ChildNodes.Delete(xn.ParentNode.ChildNodes.IndexOf(xn));
利用Xn.Text存放文件,
f:=TFileStream.Create('要存放的文件名',fmOpenRead);
xn.Text:=EncoderMime.Encode(f);
//转换格式,文件编码
f.Free;
解出Xn.Text中的文件,
f:=TFileStream.Create(‘目标文件名’,fmCreate);
DecoderMime.DecodeToStream(xn.Text,f);
f.Free;
最好利用Xn.attribute来增加一个属性来表示文件的编码方式,比如
xn.Attributes['Type']='Base64'
这样改上面的两个片段为:
xn.Attributes['Type']:='Base64';
f:=TFileStream.Create('要存放的文件名',fmOpenRead);
xn.Text:=EncoderMime.Encode(f);
f.Free;
if xn.IsTextElement //Xn中存在Text
then
if xn.HasAttribute('Type') then
//Xn中存在属性’Type’
if xn.Attributes['Type']='Base64' then
begin
f:=TFileStream.Create(‘目标文件名’,fmCreate);
DecoderMime.DecodeToStream(xn.Text,f);
f.Free;
end;
最后给出一个利用TTreeView来显示XML文档的所有树结构
XMLTree是TTreeView类
procedure TForm1.ReadXMLTree(RootTreeNode:TTreeNode;
XMLTreeNode:IXMLNode);
var i:integer;
c:TTreeNode;
begin
for i:=0 to XMLTreeNode.ChildNodes.Count-1do
begin
c:=XMLtree.Items.AddChild(RootTreeNode,XMLTreeNode.ChildNodes.Nodes.NodeName);
ReadXMLTree(c,XMLTreeNode.ChildNodes.Nodes);
end;
end;
使用方法
ReadXMLTree(nil,XMLdoc.Node);
当然要先加载XML文档
 
to delphiland
谢谢!顺便问一下,我的XML数据文件是由ACCESS的数据库中导出的,
如果给我一个不知结构的XML文件,怎样通过程序更快速获得XML数据文件结构与数据?
 
晚了一步。但我提供的文章也很好。
http://www.cty99.com/(右下脚)
 
多人接受答案了。
 
顶部