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

推荐订阅源

K
Kaspersky official blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AI
AI
SecWiki News
SecWiki News
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Engineering at Meta
Engineering at Meta
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
Microsoft Azure Blog
Microsoft Azure Blog
N
News and Events Feed by Topic
Cloudbric
Cloudbric
B
Blog
Cisco Talos Blog
Cisco Talos Blog
V
Vulnerabilities – Threatpost
N
News and Events Feed by Topic
V
Visual Studio Blog
A
Arctic Wolf
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
S
Security @ Cisco Blogs
博客园 - 聂微东
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
G
GRAHAM CLULEY
L
LINUX DO - 热门话题
量子位
NISL@THU
NISL@THU
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Troy Hunt's Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tenable Blog
月光博客
月光博客
S
Security Affairs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
D
Docker
www.infosecurity-magazine.com
www.infosecurity-magazine.com
雷峰网
雷峰网
博客园 - 司徒正美
T
The Exploit Database - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
Help Net Security
Help Net Security
D
DataBreaches.Net

博客园 - 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;