码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi webservices 传数据

时间:2015-05-31 06:41:17      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

数据集数据转换为XML
function ReplaceString(AString: string): string;
begin
  Result := StringReplace(AString, &, &, [rfReplaceAll]);
  Result := StringReplace(Result, >, >, [rfReplaceAll]);
  Result := StringReplace(Result, <, &lt;, [rfReplaceAll]);
end;

function DataSetToXml(ADataSet: TDataSet; Indent: Integer): string;
var
  i: Integer;
  Indent1, Indent2: string;
  temp: string;
begin
  Indent1 := Format(%*s, [Indent * 2,  ]);
  Indent2 := Indent1 +  ;
  Result := EmptyStr;
  ADataSet.First;
  while not ADataSet.Eof do
  begin
    Result := Result + Format(%s<%s>#13#10, [Indent1, Record]);
    for i := 0 to ADataSet.FieldCount - 1 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>#13#10,
          [ADataSet.Fields[i].FieldName, temp, Indent2])
      end;
    Result := Result + Format(%s</%s>#13#10, [Indent1, Record]);
    ADataSet.Next;
  end;
end;

function GenerateXml(ADataSet: TDataSet): string;
begin
  Result := Format
    (<?xml version="1.0" encoding="gb2312"?>#13#10<Records>#13#10%s</Records>,
    [DataSetToXml(ADataSet, 1)]);
end;

转换后生成的XML文件内容类似:

<?xml version="1.0" encoding="gb2312"?>

<Records>

  <Record>

   <userid>1</userid>

   <username>李三</username>

  </Record>

  <Record>

   <userid>2</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 := 0 to rn.ChildNodes.Count-1 do begin
    pn := rn.ChildNodes[i];
    ClientDataSet1.Append;
    for j := 0 to pn.ChildNodes.Count-1 do begin
      sn:=pn.ChildNodes[j];
      ClientDataSet1.FindField(sn.NodeName).Text :=sn.NodeValue;
    end;
    ClientDataSet1.Post;
  end;
end;

 

Delphi webservices 传数据

标签:

原文地址:http://www.cnblogs.com/chenmfly/p/4541387.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!