![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в TXMLDocument [D7]
Шурик Ш © (2005-10-24 11:59:00)Задавал этот вопрос в пятницу, но, к сожалению, не получил ожидаемого ответа. Видно, спрашивал не тем языком.
Итак, попробую перефразировать вопрос:
Я записываю содержимое XML-файла в TTreeView. Записываю только элементы (Nоde) и пропускаю атрибуты.
Внимание вопрос, как при выборе пользователем элемента TTreeView найти соответствующий ему элемент в TXMLDocument для того, чтобы вывести на экран атрибуты?
umbra (2005-10-24 14:01:00) [1]не тестировал, но принцип такой:
procedure GetNodeAttrs(parents: TStrings);
var
mynode: IXMLNode;
attrs : WideString;
lev: Integer;
tvnode : TTreeNode;
begin
parents.Clear;
lev := TreeView1.Selected.Parent.Level;
parents.Add(TreeView1.Selected.Text);
while lev > 0 do
begin
tvnode := TreeView1.Selected.Parent;
parents.Add(tvnode.Text);
dec(lev);
end;
mynode := XMLDocument1.DocumentElement;
for lev := parents.Count - 1 downto 0 do
mynode := mynode.ChildNodes.FindNode(widestring(parents[lev]));
parents.Clear;
for lev := 1 to mynode.AttributeNodes.Count do
begin
attrs := mynode.AttributeNodes[lev].Text + '=' + mynode.Attributes[mynode.AttributeNodes[lev].Text];
parents.Add(attrs);
end;
end;