惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
爱范儿
爱范儿
GbyAI
GbyAI
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
C
Check Point Blog
H
Help Net Security
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
Y
Y Combinator Blog
U
Unit 42
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - IMustDo

Delphi TWebBrowser编程简述(转帖) 用WebBrowser实现HTML界面的应用 delphi TStringList的用法 使用VSS 的Shadow folder的一点问题 Delphi 字符串操作 delphi 最快速编码 URLDecode URLEncode Delphi 2007 如何安装控件 Javascript+xmlhttp调用Webservice以及注意事项 .NET 3.5和VS 2008中的ASP.NET AJAX(转帖) VS.net 2008 beta2 新功能 VS 2008 和 .NET 3.5 Beta 2 发布了(转帖) .Net平台开发的技术规范与实践精华总结(转载收藏) 35 岁前程序员要规划好的四件事(转载) ASP.NET程序中常用的三十三种代码(转载) 40种网站设计常用技巧(转载) Visual C#常用函数和方法集汇总(收藏) 访问母版页上的成员 用缓存吧,反正现在内存白菜价,不用白不用。 在MasterPage中使用javascript获取对象
delphi 如何将XML格式的字符串导入ClientDataSet中
IMustDo · 2008-05-29 · via 博客园 - IMustDo

  下面我写了一个公用函数:  
   
  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;