Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.21;
Скачать: CL | DM;

Вниз

Отобразить XML в виде дерева   Найти похожие ветки 

 
JetMan   (2005-07-29 09:32) [0]

Hi all!
Возникла такая ситуация. Мне необходимо посторить в виде дерева (в TreeView) содержимое XML-файла. Аналагично открыванию Internet Explorer"ом XML"а.
Помогите советом :)


 
Чапаев ©   (2005-07-29 09:44) [1]

И что же ты уже сделал? В чём заминка?

Или ты ждёшь, что выложат готовый код?


 
JetMan   (2005-07-29 09:49) [2]

Сделал след.:

 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 10:47) [3]

> а я хотел бы вывести всю строку, включая теги...
Не понял. Что значит -- включая тэги?


 
JetMan   (2005-07-29 11:16) [4]

В общем, при "XML.DocumentElement" отображается значение "document", а надо "<document type="" part="" ...>"


 
Чапаев ©   (2005-07-29 11:20) [5]

Ню... Этак нечестно. Атрибуты -- это тоже ветви дерева и их обрабатывать следует соответственно.


 
DiamondShark ©   (2005-07-29 19:17) [6]

Справка по msxml находится здесь:
http://msdn.microsoft.com/library/en-us/xmlsdk/html/d051f7c5-e882-42e8-a5b6-d1ce67af275c.asp


 
palva ©   (2005-07-30 10:11) [7]

Попробуй
mainNode := XML.DocumentElement.xml;


 
palva ©   (2005-07-30 10:13) [8]

А вообще, конечно надо по-чапаевски. Спускаться вниз по дереву и перебирать ChildNodes, анализировать их свойства и т. д.



Страницы: 1 вся ветка

Текущий архив: 2005.08.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.044 c
14-1122495978
Qwertyk
2005-07-28 00:26
2005.08.21
Как избавиться от разводов


4-1119960365
chili
2005-06-28 16:06
2005.08.21
Как максимально надежно защитить реестер Windows


14-1122888356
ocean
2005-08-01 13:25
2005.08.21
Старый шрифт


10-1099904482
Marina_Sm
2004-11-08 12:01
2005.08.21
COM


3-1120751559
Alex77777
2005-07-07 19:52
2005.08.21
Поиск значения при вводе