Delphi webservices 传数据
数据集数据转换为XML
function ReplaceString(AString: string): string;
begin
Result := StringReplace(AString, '&', '&', [rfReplaceAll]);
Result := StringReplace(Result, '>', '>', [rfReplaceAll]);
Result := StringReplace(Result, '<', '<', [rfReplaceAll]);
end; function DataSetToXml(ADataSet: TDataSet; Indent: Integer): string;
var
i: Integer;
Indent1, Indent2: string;
temp: string;
begin
Indent1 := Format('%*s', [Indent * , ' ']);
Indent2 := Indent1 + ' ';
Result := EmptyStr;
ADataSet.First;
while not ADataSet.Eof do
begin
Result := Result + Format('%s<%s>'##, [Indent1, 'Record']);
for i := to ADataSet.FieldCount - do
if ADataSet.Fields[i].DataType in [ftString .. ftAutoInc, ftMemo,
ftWideString] then
begin
temp := ReplaceString(ADataSet.Fields[i].AsString);
Result := Result + Format('%2:s<%0:s>%1:s</%0:s>'##,
[ADataSet.Fields[i].FieldName, temp, Indent2])
end;
Result := Result + Format('%s</%s>'##, [Indent1, 'Record']);
ADataSet.Next;
end;
end; function GenerateXml(ADataSet: TDataSet): string;
begin
Result := Format
('<?xml version="1.0" encoding="gb2312"?>'##'<Records>'##'%s</Records>',
[DataSetToXml(ADataSet, )]);
end; 转换后生成的XML文件内容类似: <?xml version="1.0" encoding="gb2312"?> <Records> <Record> <userid></userid> <username>李三</username> </Record> <Record> <userid></userid> <username>王五</username> </Record> </Records> 解析XML内容生成数据集的数据,本例中使用TXMLDocument控件 procedure TForm1.Button1Click(Sender: TObject);
var
rn,pn,sn:IXMLNode;
i,j:Integer;
begin
ClientDataSet1.EmptyDataSet;
rn:=x.DocumentElement;
for i := to rn.ChildNodes.Count- do begin
pn := rn.ChildNodes[i];
ClientDataSet1.Append;
for j := to pn.ChildNodes.Count- do begin
sn:=pn.ChildNodes[j];
ClientDataSet1.FindField(sn.NodeName).Text :=sn.NodeValue;
end;
ClientDataSet1.Post;
end;
end;
Delphi webservices 传数据的更多相关文章
- Angular js 之动态传数据到下一个页面和动态通过ng-click进入不同的页面
+关于Angular js中一些千篇一律的后台获取数据 首先在services.js里面把服务写好 然后在controller里面把数据给打印出来 (首先需要把数据注入) +关于Angular js中 ...
- SpringMVC中使用Json传数据
在web项目中使用Json进行数据的传输是非常常见且有用的,在这里介绍下在SpringMVC中使用Json传数据的一种方法,在我的使用中,主要包括下面四个部分(我个人喜好使用maven这类型工具进行项 ...
- 跨Controllers传数据
今天遇到两个问题,第一个是跨controller传值,后一个是比较简单的linq数据库查询问题.先描述以下问题我有一个入库单和一个入库明细,入库的逻辑是先填写入库单在填入库明细.两者要么同时完成,要么 ...
- [置顶] TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)
eclipse .MyEclipse 配置安装 git:http://wenku.baidu.com/link?url=gMT4a7K6EJWAztuwun73oPHiKqlydEdn5F3S2Win ...
- 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件
[源码下载] 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...
- 4.MVC框架开发(母版页的应用、按钮导致的Action处理、从界面向控制器传数据和HtmlHelper控件的实现(注册的实现))
1.在视图里如何引入母版页 1)在视图里母版页都是放在View目录下面的Shared文件夹下面 2)母版页里的RenderBody()类似于ASP.NET里面的ContentPalceHolder占位 ...
- layer.js子窗口关闭并传数据到父窗的方法
昨晚整了很晚,一直找不到方法.去官网api看了好久,又在网上搜了很久 始终找不到答案.今天自己终于找到了方法. 难点:因为 确认和取消按钮都是在父窗 调用js生成的按钮.只能从父窗回调的时候去去数据并 ...
- TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)[转]
TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub) Git-1.7.11-preview+GitExtensions244SetupComplete+T ...
- Amzon MWS API开发之 上传数据
亚马逊上传数据,现有能操作的功能有很多:库存数量.跟踪号.价格.商品....... 我们可以设置FeedType值,根据需要,再上传对应的xml文件即可. 下面可以看看FeedType类型 这次我们拿 ...
随机推荐
- linux下常用网页查看下载工具--wget
http://www.linuxidc.com/Linux/2015-06/118256.htm 5 个基于Linux命令行的文件下载和网站浏览工具 rTorrent.wget.cURL.w3m.El ...
- RHEL7安装部署ZooKeeper
转载请注明出处:jiq•钦's technical Blog - 季义钦 文章说明: 分布式注冊中心(链接)须要安装的组件包括两个部分: 1.注冊中心服务(Zookeeper) 2.站点(Tomcat ...
- android 二维码制作,显示到UI,并保存SD卡,拿来就能用!!
转载请注明出处:王亟亟的大牛之路 如今二维码已经渗透了我们的生活.各种扫码关注啊.扫码下载的,今天上一个依据输入内容生成二维码的功能. 包结构: 界面截图: 功能:输入网址–>生成图片–> ...
- Android ImageButton的使用。
1.首先是范例代码,一个基本的ImageButton响应. package com.example.arlxsdemo; import android.graphics.Bitmap; import ...
- 26计算限制的异步操作01-CLR
由CLR via C#(第三版) ,摘抄记录... 异步优点:在GUI应用程序中保持UI可响应性,以及多个CPU缩短一个耗时计算所需的时间. 1.CLR线程池基础:为提高性能,CLR包含了代码来管理他 ...
- 已备份数据库的磁盘结构版本号为611,server支持版本号为539,无法还原或升级数据库
提供的是bak文件是2005备份的,还原到本地的sqlserver2000,提示:已备份数据库的磁盘上结构版本号为611.服务器支持版本号539,无法还原或升级数据库. 网上找了下,原因是611是sq ...
- 如何更好的利用Node.js的性能极限
通过使用非阻塞.事件驱动的I/O操作,Node.js为构建和运行大规模网络应用及服务提供了很好的平台,也受到了广泛的欢迎.其主要特性表现为能够处理庞大的并且高吞吐量的并发连接,从而构建高性能.高扩展性 ...
- QQpet exploratory park(DP)
QQpet exploratory park Today, more and more people begin to raise a QQpet. You can get a lot of plea ...
- Brain Network (easy)(并查集水题)
G - Brain Network (easy) Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- (转)如何使VMware ip与本机ip处于同一网段
如何使VMware ip与本机ip处于同一网段 原创 2017年05月08日 17:28:56 1287 首先确认本机ip 可以看出一下信息: 本机ip: 192.168.1.162 网关:192. ...