Код:
function GetTidForPage(XML:IXMLDocument;page:integer):TStringList;:string;
var
Nodes : IXMLNodeList;
PageNode,
ChildNode : IXMLNode;
s :String;
SList: TStringList;
begin
s:='';SList := TStringList.Create;
if XML = nil then Result:='Error: File Not Found';
try
Nodes := XML.DocumentElement.ChildNodes;
PageNode := Nodes.FindNode('page');
while (PageNode <> nil) do
if (PageNode.NodeName <> 'page') or (PageNode.Attributes['id'] <> page) then
PageNode := PageNode.NextSibling
else
break;
if PageNode <> nil then begin
Nodes := PageNode.ChildNodes;
ChildNode := Nodes.First;
while ChildNode <> nil do begin
s:=s+ChildNode.Text;
SList.Add(ChildNode.Text);
ChildNode := ChildNode.NextSibling;
end;
end;
finally
XML := nil;
Result:=s;SList;
end;
end;
Дальше с этим списком работаем по индексам, например так:
Код:
var
SL: TStringList;
begin
SL := GetTidForPage(XML, 1);
RichEdit1.Lines.Add(SL[0]);
...
Не забудьте после обработки список уничтожить: