5,392
社区成员
发帖
与我相关
我的任务
分享
//设置导出到XML中的XML头
function DoSetXMLHead(AData: TdataSet): Boolean;
var
FNodeXML, SNodeXML: TXmlNode;
i: Integer;
begin
Result := False;
if not Assigned(XMLObject) then
XMLObject := TNativeXml.Create(Self);
try
XMLObject := TNativeXml.CreateName('DATAPACKET');
XMLObject.AttrText('Version', '2.0');
XMLObject.IndentString := ' '; //缩进空格数
XMLObject.XmlFormat := xfReadable;
FNodeXML := XMLObject.Root.NodeNew('METADATA');
SNodeXML := FNodeXML.NodeNew('FIELDS');
for i := 0 to AData.FieldCount - 1 do
begin
with SNodeXML.NodeNew('FIELD') do
begin
AttributeAdd('attrname', AData.Fields[i].FieldName);
AttributeAdd('fieldtype', 'string'); //待定
AttributeAdd('width', '20'); //待定
end;
end;
Result := True;
except
if XMLObject <> nil then XMLObject.Free;
end;
end;
<?xml version="1.0" encoding="utf-8"?>
<DATAPACKET> //注意:这里的Version=2.0没有写入
<METADATA>
<FIELDS>
<FIELD attrname="ProviderID" fieldtype="string" width="20"/>
<FIELD attrname="TypeID" fieldtype="string" width="20"/>
<FIELD attrname="TypeName" fieldtype="string" width="20"/>
<FIELD attrname="Caption" fieldtype="string" width="20"/>
<FIELD attrname="Length" fieldtype="string" width="20"/>
</FIELDS>
</METADATA>
<ROWDATA>
</ROWDATA>
</DATAPACKET>