怎么把XML文件中的内容读入到ListView中去

解决方案 »

  1.   

    用Delphi 自带的XML Data binding,生成XML类,再将里面元素的值读出来,手工加到ListView里,呵呵!
      

  2.   

    用XMLDocument加载你要分析的XML文件
    然后用个循环便利节点,加入到ListView中去
      

  3.   

    可以采用底层的做法,建立一了TXMLDocument对象,遍历一遍XML的结点,取出你要的结点,存到listview中去。
    或者,使用delphi的XML Binding机制,用一个范例xml文档或者DTD/Schema,生成绑定单元,然后利用这个单元产生的接口,解析XML文档.
    第二种方法映射了数据类型,操作方便一些
      

  4.   

    三楼的也说得太简单了吧请问XML Data binding怎么用?有没有什么例子
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      noderef:IXMLDOMNodeRef;
      root:IXMLDOMNode;
      Node:IXMLDOMNode;
    begin
      XMLDocument1.Active:=true;
      noderef:=XMLDocument1.DocumentElement.DOMNode as IXMLDOMNodeRef;
      root:=noderef.GetXMLDOMNode;
      node:=root.selectSingleNode('node1/node2/node3/node4');
      if Assigned(node) then
      begin
        ShowMessage(node.attributes.getnameditem('title').text);
      end;
    end;
    转载其他的帖子
      

  6.   

    XML数据映象使用:http://kylix.linuxaid.com.cn/xoops2/modules/tutorials/viewtutorial.php?tid=17
    首页还有基础xml使用和xml绑定2篇教程,很有启发的
      

  7.   

    我在学习xml的时候,写过一个联系的小程序,如果需要的话,给我email:[email protected]
      

  8.   

    给你一个例子:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, xmldom, XMLIntf, StdCtrls, msxmldom, XMLDoc,QComCtrls, ComCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        XMLDoc: TXMLDocument;
        xmltree: TTreeView;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
      procedure ReadXMLTree(RootTreeNode:TTreeNode; XMLTreeNode:IXMLNode);
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
    xn:IXMLNode;
    f:TFileStream;
    begin
            //加载XML文档
            XMLDoc.LoadFromFile('D:\xml\1.xml');
            //使XML文档变为活动
            XMLDoc.Active:=true;
            xn:=xmldoc.Node;
            ReadXMLTree(NIL,XN);end;//递归方法显示
    procedure TForm1.ReadXMLTree(RootTreeNode:TTreeNode; XMLTreeNode:IXMLNode);
    var
            i:integer;
            c:TTreeNode;
    begin
            for i:=0 to XMLTreeNode.ChildNodes.Count-1 do
              begin
                   c:=xmltree.Items.AddChild(RootTreeNode,XMLTreeNode.ChildNodes.Nodes[i].NodeName);
                   ReadXMLTree(c,XMLTreeNode.ChildNodes.Nodes[i]);
              end;
    end;end;
      

  9.   

    呵呵,我这里有一个麻烦的方法,用ClientdataSet,右键点击该控键,里面有一个方法“load from mybase table”,利用该方法可以将xml文件中的数据倒入到Clientdataset中
    或者用代码:
    1.将xml文件中的数据读入到一个字符串rs中,然后
    ClientDataSet1.xmlData:=rs;这样也能将数据转入Clientdataset,在然后你就可以遍历数据集,将纪录转入listview中。够麻烦吗?