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 * 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;
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 * 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;
解决方案 »
- 如何在程序中关闭一个端口,比如445?
- 控件返回事件中带返回参数值失败
- 我的应用系统中存在远程访问的问题,请赐教,谢谢!
- 各位高手,对以下查询语句有何意见
- Delphi7在选择打开一个Project时总是缺省的打开C:\Program Files\Borland\Delphi7\Projects这个目录下,如果改Delphi7的设置,使打开时能
- 关于文本文件的读取与统计
- Requires a transaction和Supports transactions的概念
- 发布一个通用DDL生成器程序,请大家帮忙测试一下
- 一个棘手的问题,哪位高手帮我看看,准备了60分!
- 取出网页中所有<td>标签中的内容
- ZSWang请出手帮忙,把我的贴子给结了
- dbcombobox的下edit框不能编辑,onClick事件对应的function不被触发,为什么呢?
祝你好运