zoukankan      html  css  js  c++  java
  • delphi 如何将XML格式的字符串导入ClientDataSet中


      下面我写了一个公用函数:  
       
      uses   XMLDoc,   XMLIntf,msxml,msxmldom;  
       
       
      function   XMLToDataSet(strXML:WideString):TClientDataSet;  
      var  
          myDataSet:TClientDataSet;  
          s:string;  
          xdoc   :   IXMLDOMDocument;  
          xdn   :IXMLDOMNode;  
          xdns   :IXMLDOMNodeList;  
          i,j:integer;  
      begin  
      s:='<?xml   version="1.0"   encoding="gb2312"?>   <!--文档版本信息,   注释格式同HTML-->'  
      +'<data>'  
      +'<row>'  
      +'<id>11</id><name>AAA</name><sex>男9</sex><age>24</age>'  
      +'</row>'  
      +'<row>'  
      +'<id>12</id><name>BBB</name><sex>女8</sex><age>25</age>'  
      +'</row>'  
      +'<row>'  
      +'<id>13</id><name>CCC</name><sex>女7</sex><age>26</age>'  
      +'</row>'  
      +'<row>'  
      +'<id>4</id><name>DDD</name><sex>男6</sex><age>28</age>'  
      +'</row>'  
      +'</data>';  
      //上面的格式就是传递参数strXML:WideString的格式,必须用row节点  
      myDataSet   :=   TClientDataSet.Create(nil);  
      xdoc:=CreateDOMDocument();  
      xdoc.loadXML(StrXML);  
      //xdoc.load('c:\test.xml');  
      s:='';  
      xdn:=xdoc.documentElement;  
      xdns:=xdoc.selectNodes('//row');  
      try  
      begin  
              for   i:=0   to   xdns.item[0].childNodes.length-1   do  
              begin  
                      myDataSet.FieldDefs.Add(xdns.item[0].childNodes[i].nodeName,ftstring,1000);  
              end;  
              myDataSet.CreateDataSet;                     //建立  
              myDataSet.Active;  
       
              for   i:=0   to     xdns.length-1   do  
              begin  
                      myDataSet.Append;  
                      for   j:=0   to   xdns.item[i].childNodes.length-1   do  
                      begin  
                              myDataSet.FieldValues[xdns.item[i].childNodes[j].nodeName]:=xdns.item[i].childNodes[j].text;  
                      end;  
                      myDataSet.Post;  
              end;  
       
      end;  
          except  
          on   Ex:Exception   do  
          //ShowMessage(Ex.Message);  
          myDataSet:=nil;  
          end;  
       
          result:=myDataSet;  
       
      end;
  • 相关阅读:
    document.getElementById的简便方式
    uri编解码
    javascript数组
    前端网站收藏
    html5 canvas
    interview material
    Merge into(oracle)
    机器学习入门二 ----- 机器学习术语表
    机器学习入门一 ------- 什么是机器学习,机器学习的在实际中的用处
    Dubbo 源码分析系列之一环境搭建
  • 原文地址:https://www.cnblogs.com/msn/p/1210022.html
Copyright © 2011-2022 走看看