![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отобразить XML в виде дерева [D6, WinXP]
JetMan © (2005-07-29 09:32:00)Hi all!
Возникла такая ситуация. Мне необходимо посторить в виде дерева (в TreeView) содержимое XML-файла. Аналагично открыванию Internet Explorer'ом XML'а.
Помогите советом :)
palva (2005-07-30 10:13:00) [1]А вообще, конечно надо по-чапаевски. Спускаться вниз по дереву и перебирать ChildNodes, анализировать их свойства и т. д.
palva (2005-07-30 10:11:00) [2]Попробуй
mainNode := XML.DocumentElement.xml;
DiamondShark (2005-07-29 19:17:00) [3]Справка по msxml находится здесь:
http://msdn.microsoft.com/library/en-us/xmlsdk/html/d051f7c5-e882-42e8-a5b6-d1ce67af275c.asp
Чапаев (2005-07-29 11:20:00) [4]Ню... Этак нечестно. Атрибуты -- это тоже ветви дерева и их обрабатывать следует соответственно.
JetMan (2005-07-29 11:16:00) [5]В общем, при "XML.DocumentElement" отображается значение "document", а надо "<document type="" part="" ...>"
Чапаев (2005-07-29 10:47:00) [6]> а я хотел бы вывести всю строку, включая теги...
Не понял. Что значит -- включая тэги?
JetMan (2005-07-29 09:49:00) [7]Сделал след.:
procedure LoadItems(TreeNode: TTreeNode; Node: Variant);
var
i: Integer;
begin
TreeNode := TreeView.Items.AddChild(TreeNode, Node.nodeName);
TreeNode.ImageIndex := TreeNode.Level;
TreeNode.SelectedIndex := TreeNode.ImageIndex;
if Node.nodeName = '#text' then
begin
TreeNode.Text := Node.nodeValue;
end;
for i:=0 to Node.childNodes.length-1 do
LoadItems(TreeNode, Node.childNodes.item[i]);
end;
begin
XML := CreateOleObject('Microsoft.XMLDOM');
XML.Async := false;
XML.load(FileName);
if XML.parseError.errorCode <> 0 then
begin
ShowMessage( getParseError(XML.parseError) );
end
else
begin
mainNode := XML.DocumentElement;
LoadItems(nil, mainNode);
TreeNode := TreeView.Items[1];
while Assigned(TreeNode) do
begin
TreeNode.Expand(false);
TreeNode := TreeNode.GetNextSibling;
end;
if Assigned(TreeView.Items[0]) then
TreeView.Items[0].Expand(false);
end;
end;
Заминка в mainNode := XML.DocumentElement;выводит только содержимое, а я хотел бы вывести всю строку, включая теги...
Чапаев (2005-07-29 09:44:00) [8]И что же ты уже сделал? В чём заминка?
Или ты ждёшь, что выложат готовый код?