<AA>
<record1>
<MZ_DM>02</MZ_DM>
<HYZK_DM>5</HYZK_DM>
<WHCD_DM>16</WHCD_DM>
</record1>
<record2>
<MZ_DM>01</MZ_DM>
<HYZK_DM>1</HYZK_DM>
<WHCD_DM>6</WHCD_DM>
</record2>
<AA>
上面这个文件XML文件有如<record1>,<record2>,<record3>,<record3>....这样的节点,可以顺序增加,应该怎样生成和读取这个XML.
<record1>
<MZ_DM>02</MZ_DM>
<HYZK_DM>5</HYZK_DM>
<WHCD_DM>16</WHCD_DM>
</record1>
<record2>
<MZ_DM>01</MZ_DM>
<HYZK_DM>1</HYZK_DM>
<WHCD_DM>6</WHCD_DM>
</record2>
<AA>
上面这个文件XML文件有如<record1>,<record2>,<record3>,<record3>....这样的节点,可以顺序增加,应该怎样生成和读取这个XML.
操作方法
打开delphi->menu->tool->xml mapper
在xml mapper->file->open打开你的xml文件,左边document里双击你所要转化的字段到
中间transformation里,然后先点菜单create->datapacket from xml,然后就再点菜单create->transformation就把datapacket加到中间的selected Fields里了,最后在菜单
save->transformation保存为xtr文件就完成了delphi里调用
新建一个工程,需要的控件ClientDataSet1,XMLTransformProvider1,DataSource1,dbgrid1ClientDataSet1的providename指向XMLTransformProvider1;
DataSource1的dataset指向ClientDataSet1;
dbgrid1的datasource指向DataSource1;XMLTransformProvider1的transformRead.transformactionFile填入你刚才转换的xtr文件包含路径;
XMLTransformProvider1的transformWrite.transformactionFile填入你刚才转换的xtr文件包含路径;XMLTransformProvider1的XMLDataFile填入你的xml文件包含路径;
最后把ClientDataSet1的active=true就可以在dbgrid1里看到你的xml数据了
例:adotable1.savetofile('xx.xml',pfxml);//xml格式
adotable1.savetofile('xx.adtg',pfadtg);//adtg格式
加入可用
adotable1.loadfromfile('xx.xml');
当然还可用
Txmldocument创建一个xml文档
XMLDoc: TXMLDocument; DataSet: TDataSet);
var
iNode ,iChild: iXMLNode;
i : integer;
begin
DataSet.Open;
DataSet.First;
{root}
XMLDoc.DocumentElement := XMLDoc.CreateNode(RootName);
{add table data}
while not DataSet.Eof do
begin
{add a node for each record}
iNode := XMLDoc.DocumentElement.AddChild(RecordName);
for I := 0 to DataSet.FieldCount - 1 do // Iterate
begin
{add an element for each field}
iChild := iNode.AddChild(DataSet.Fields[i].FieldName);
if DataSet.Fields[i].IsNull then
iChild.Text := ''
else
iChild.Text := DataSet.Fields[i].AsString;
end; // for
DataSet.Next;
end; // while
end;