Всем здравствуйте! Возникла такая проблема: загружаем xml документ в treeview, необходимо, чтобы при выборе ноды в treeview формировался string list со значениями, а конкретно - при выборе ноды port в stringlist1 выводилось значение ноды ip, принадлежащей общей (для ip и port) ноде host, а в stringlist2 выводились значения ноды snmp_oid всех нод item, принадлежащих данному items. Для чего это нужно: при выборе порта устройства выбираются нужные oid, которые будут отправлены этому устройству, и выбирается ip устройства. Собственно вся трудность в том, что устройств в xml файле будет много и нужно, чтобы выбирался ip именно того, чей порт выбран.
Пока сделано только это:
Код:
procedure TMainForm.sTreeView1Change(Sender: TObject; Node: TTreeNode);
var
_node: IXMLDOMNode;
s:integer;
begin
_node:= XML1.selectSingleNode('//port');//groups/hosts/host');
for s:=0 to _node.selectNodes('//item').length-1 do
begin
SL := TStringList.Create;
SL.Add((_node.selectnodes('//item').item[s].selectSingleNode('description').Text) +'='+(_node.selectnodes('//item').item[s].selectSingleNode('snmp_oid').Text));
sMemo1.Lines.Add(SL.Text);
end
end;
Есть идеи? Исходники во вложении. Там скорее всего все просто, только я чего-то не пойму...