Это должно помочь вам начать:
uses
OmniXML,
OmniXMLUtils;
procedure GetEAttr(var v8, v9, v10: integer);
begin
v8 := Random(10);
v9 := Random(10);
v10 := Random(10);
end;
procedure TForm54.FormCreate(Sender: TObject);
var
i : integer;
node1 : IXMLNode;
node2 : IXMLNode;
root : IXMLNode;
v10 : integer;
v8 : integer;
v9 : integer;
xmlDoc: IXMLDocument;
begin
xmlDoc := CreateXMLDoc;
xmlDoc.AppendChild(xmlDoc.CreateProcessingInstruction('xml', 'version="1.0" encoding="Unicode" standalone="yes"'));
root := AppendNode(xmlDoc, 'A');
SetNodeAttr(root, 'V1', 'string');
SetNodeAttr(root, 'V2', 'string');
node1 := AppendNode(root, 'B');
node2 := AppendNode(node1, 'C');
SetNodeAttr(node2, 'V3', '1');
SetNodeAttr(node2, 'V4', '1');
SetNodeAttr(node2, 'V5', '0');
node1 := AppendNode(root, 'C');
SetNodeAttr(node1, 'V6', '14.25');
SetNodeAttr(node1, 'V7', '0.2');
node1 := AppendNode(root, 'D');
for i := 1 to 4 do begin
GetEAttr(v8, v9, v10);
node2 := AppendNode(node1, 'E');
SetNodeAttrInt(node2, 'V8', v8);
SetNodeAttrInt(node2, 'V9', v9);
SetNodeAttrInt(node2, 'V10', v10);
end;
XMLSaveToFile(xmlDoc, 'test.xml', ofIndent);
end;