Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];

Вниз

XML   Найти похожие ветки 

 
PONTIY   (2002-07-16 06:38) [0]


XML: TXMLDocument;
XML.LoadFromFile(OpenDialog.FileName);
XML.ChildNodes.First;
далее делаем
XML.Node.NodeName
XML.Node.NodeValue

а как собственно переходить от нода к ноду?
т.е. нужно пройтись по всему xml и собрать имена нодов и их значения


 
int64   (2002-07-16 08:05) [1]

Также, как и с TList.

for i:= 0 to XML.ChildNodes.Count-1 do
begin
Memo1.Lines.Add("NodeName: "+XML.ChildNodes[i].NodeName);
for j:=0 to XML.ChildNodes[i].ChildNodes.Count-1 do
Memo1.Lines.Add("ChildName: "+XML.ChildNodes[i].ChildNodes[j].NodeName);
Memo1.Lines.Add("Count ChildNodes: "+inttostr(
XML.ChildNodes[i].ChildNodes.Count));
Memo1.Lines.Add("Count Elements: "+inttostr(
XML.DocumentElement.ChildNodes[i].ChildNodes.Count));
Memo1.Lines.Add("--------------");
end;CODE>


 
StarCon   (2002-07-16 08:25) [2]

то бишь чтобы докапаться до 10 уровня надо использовать
XML.ChildNodes[i].ChildNodes[j].ChildNodes[a].ChildNodes[b].ChildNodes[c].ChildNodes[d].ChildNodes[f].ChildNodes[h].ChildNodes[g].ChildNodes[k].NodeName????
наверное есть другой подход?


 
int64   (2002-07-16 09:08) [3]

Конечно есть. Например просмотр исходных текстов компонент, когда F1 не работает. :)


 
Lmatveev   (2002-07-16 09:38) [4]

Как и для любого дерва - рекурсивный вызов процедуры, описанной выше:

procedure ProcessDocument(AXML: TXMLDocument);

procedure AddChilds(AChilds: IXMLNodeList)
var i: integer;
begin
if AChilds.Count=0 then exit;
for i := 0 to AChilds.Count-1 do begin
Memo1.Lines.Add(AChilds[i].NodeName);
AddChilds(AChilds[i].ChildNodes);
end;
end;

begin
AddChilds(AXML.ChildNodes);
end;



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

Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.007 c
14-95549
Death for...
2002-07-02 19:43
2002.07.29
Пароль под маской...


4-95627
Yerba
2002-05-21 14:29
2002.07.29
О установке своего языка


4-95601
DenNNis
2002-05-21 15:48
2002.07.29
ShellExecute


14-95502
esprit_bel
2002-06-22 02:17
2002.07.29
клава


1-95426
malamba
2002-07-16 09:28
2002.07.29
новый класс на базе чекбокса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский