delphi如何读取xml中的记录,并导入数据库中。
导入数据库就不用说了,比如
<?xml version="1.0" encoding="UTF-8"?>
<单位基本信息>
    <AAB001>9214</AAB001>
    <AAB002>09214</AAB002>
</单位基本信息>
这样一个简单的xml文件,用msxml如何读取

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject); 
    var 
      resultStr:string; 
      XmlNode :IXMLNode; 
      n,s:OleVariant ; 
    begin //组合xml XMLDocument1.XML.Add(' <?xml version="1.0" encoding="gb2312"?> ')  ; 
    XMLDocument1.XML.Add(' <ts>')  ; 
    XMLDocument1.XML.Add(' <t n="13000272_158" d="2005-5-5 0:0:0" /> ')  ; 
    XMLDocument1.XML.Add(' <t n=" 13000272_158" />')  ; 
    XMLDocument1.XML.Add(' <t n="13000272_158" b="2005-5-5" e="2005-5-6" i="300" />')  ; 
    XMLDocument1.XML.Add(' </ts> ')  ; // 
    resultStr := GetValue_xml(XMLDocument1.XML.Text) ; //XMLDocument2  去获取返回的XML 
    XMLDocument2.XML.Add(resultStr) ; //循环读取节点 
    XmlNode :=  XMLDocument1.DocumentElement.ChildNodes.First ; 
    while XmlNode <> nil do 
    begin 
      if XmlNode.NodeName = 't' then 
        begin 
          n:= XmlNode.Attributes['n'] ; 
          s:= XmlNode.Attributes['s'] ;     end 
      else if XmlNode.NodeName = 'v' then 
        begin 
          n:= XmlNode.Attributes['n'] ; 
          s:= XmlNode.Attributes['s'] ;     end; 
          XmlNode := XmlNode.NextSibling ; 
    end; end;
      

  2.   

    procedure TForm1.btn1Click(Sender: TObject);
    var
      i: Integer;
      Root, Node: IXMLNode;
    begin
      XMLDoc.LoadFromFile('D:\TEST.XML');
      XMLDoc.Active:=True;
      Root := XMLDoc.DocumentElement;
      for i:=0 to Root.ChildNodes.Count-1 do
      begin
        Node := Root.ChildNodes.Nodes[i];
        Memo1.Lines.Add(Node.NodeName+'='+Node.NodeValue);
      end;
    end;