Использование GpFluentXML :
var
root : IXMLNode;
rowID: integer;
xml : IGpFluentXmlBuilder;
begin
xml := CreateFluentXml
.AddChild('root')
['ver', '']
['file', '']
.Anchor(root);
for rowID := 1 to 10 do begin
xml
.Jump(root)
.AddChild('row')
.AddChild('id', rowID)
.AddSibling('name', '')
.AddSibling('surname', '')
.AddSibling('time', '')
.AddSibling('old', '')
.AddSibling('subject', '');
end;
XMLSaveToFile(xml.Xml, 'filename', ofIndent);
end;
Использование OmniXMLUtils (часть дистрибутива OmniXML):
var
row : IXMLNode;
rowID: integer;
xml : IXMLDocument;
begin
xml := ConstructXMLDocument('root');
SetNodeAttr(xml.DocumentElement, 'ver', '');
SetNodeAttr(xml.DocumentElement, 'file', '');
for rowID := 1 to 10 do begin
row := AppendNode(xml, 'row');
SetNodeTextInt(row, 'id', rowID);
SetNodeText(row, 'name', '');
SetNodeText(row, 'surname', '');
SetNodeText(row, 'time', '');
SetNodeText(row, 'old', '');
SetNodeText(row, 'subject', '');
end;
XMLSaveToFile(xml, 'filename', ofIndent);
end;
Что касается сортировки, вы не сортируете XML; Вы сортируете данные перед добавлением их в документ.