请教各位高手,delphi中怎样读取xml文件,有没有控件可用!

解决方案 »

  1.   

    有的  delphi7里面有其实xml就是文本  不行你自己读文本  硬来也行
      

  2.   

    时间紧,自己写来不及!
      问题是我还要根据图形配置生成xml文件!
      

  3.   

    你可以去下载微软的XML,里面封装了很多处理XML的接口和方法
      

  4.   

    大富翁论坛使用的就是Xml,离线浏览器的源代码有详细地说明。好多高手写的源代码非常有意义。这里我就不详细地说了,自己了解。
      

  5.   

    Microsoft有一个XMLPartner的ActiveX控件.
      

  6.   

    D6/7里的TXMLDocument就很好用呀
    我就用它的
      

  7.   

    这都不知道呀?用ClientDataSet组件,
    -----------------------------------
    步骤:
      1、View\Component List\输入TClientDataSet\点Add to form按钮
      设置属性:FileName = 'E:\Borland\Borland Shared\Data\customer.xml'
      2、设置属性Active:=true
      接着和Table、Query的操作一样啊,用DBGrid就可以显示数据呀!组件属性设置如下:
    object ClientDataSet1: TClientDataSet
      Active = True
      Aggregates = <>
      FileName = 'E:\Borland\Borland Shared\Data\customer.xml'
      Params = <>
      Left = 128
      Top = 80
      Data = {  
    }
    end
      

  8.   

    1:利用delphi的数据绑定功能为特定xml生成一个类
    然后通过类来访问这个xml文件
    2:XMl mapper将XMl解析成一个xtr描述文件
    然后用XMltransprivide将数据读出放到一个Clientdataset数据寄种
    3:将xml装载在xmldocument组件中以一种树节点的形式读出数据啊delphi对xml的三种用法
      

  9.   

    unit untMain;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ComCtrls, MSXML_TLB, StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        tvXML: TTreeView;
        Splitter1: TSplitter;
        rchXML: TRichEdit;
        procedure FormCreate(Sender: TObject);
        procedure tvXMLClick(Sender: TObject);
      private
        { Private declarations }  public
        { Public declarations }
      end;var
      Form1: TForm1;
      MyDom:DOMDocument;
    implementation
    Function AddXMLElements(dom:IXMLDOMNode; parentnode : TTreeNode; pTV : TTreeView):boolean;
    var
        i:integer;
        node:TTreeNode;
    begin
        If dom.hasChildNodes Then
        begin
            For i:= 0 To dom.childNodes.length - 1 do
            begin
                If dom.childNodes.Item[i].baseName <> '' Then
                begin
                    node := pTV.Items.AddChild(parentnode, '[N] <' + dom.childNodes.Item[i].baseName + '>' );
                    node.Data := pointer(i);
                    AddXMLElements(dom.childNodes.Item[i], node, pTV);
                end;
            end;
        End;
        try
            For i := 0 To dom.Attributes.length - 1 do
            begin
                node := pTV.Items.AddChild(parentnode, '[A]' + dom.Attributes.item[i].baseName + '=' + dom.Attributes.item[i].Text);
                node.Data := pointer(-1);
            end;
        finally    end;
    End;function LoadXMLTOTreeView(szXMLfile:string;pTV:TTreeView):boolean;
    var
       root,node:TTreeNode;
       i:integer;
    begin
        MyDom := CoDOMDocument.Create;
        If (Not MyDom.Load(szXMLFile)) Then
        begin
             LoadXMLToTreeView := False;
             exit;
        end;
        root := pTV.Items.AddFirst(nil,MyDom.nodeName);
        For i := 0 To MyDom.childNodes.length - 1 do
        begin
             node := pTV.Items.AddChild(root, MyDom.childNodes.Item[i].baseName);
             node.Data := Pointer(i);
             AddXMLElements(MyDom.childNodes.Item[i],
                            node,
                            pTV);
        end;end;function GetElemvalue(node:ttreenode):string;
    var
       lst:array [1..10000] of integer;
       ct:integer;
       nd:ttreenode;
       dom:IXMLDOMNode;
    begin
         nd:=node;
         ct:=0;
         repeat
             inc(ct);
             lst[ct]:=integer(nd.data);
             if(lst[ct]=-1)then
             begin
                  getelemvalue:='';
                  exit;
             end;
             nd:=nd.Parent;
         until nd=nil;     dec(ct);
         dom:=mydom;
         while ct>0 do
         begin
              dom:=dom.childNodes.item[lst[ct]];
              dec(ct);
         end;
         getelemvalue:=dom.xml;
    end;
    {$R *.DFM}procedure TForm1.FormCreate(Sender: TObject);
    var
       n:ttreenode;
    begin
         LoadXMLTOTreeView('C:\Program Files\Common Files\Microsoft Shared\Help\dexplore.xml', tvXML);
    end;procedure TForm1.tvXMLClick(Sender: TObject);
    begin
         if (tvxml.selected <> nil) then
         begin
              rchXML.Text:=GetElemvalue(tvxml.selected);
         end;
    end;end.不支持编辑功能
      

  10.   

    那又怎麽解決由圖形化配置所得到的數據來生成xml文檔的問題了?