Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с XMLDOCUMENT [D7, WinXP]


Буржуй ©   (2010-07-22 15:05:00) 

подгружаю значит описание сайта, адрес соответственно и данные из первого item`а, а как получить доступ ко всем остальным?
RSS гружу отсюда: http://www.saxson.ru/engine/rss.php

xmldocument1.Active := true;
memo1.lines.add ( xmldocument1.DocumentElement.ChildN odes.Nodes[0].ChildNodes ['description'].Text);
memo1.lines.add ( xmldocument1.DocumentElement.ChildN odes.Nodes[0].ChildNodes ['link'].Text);
memo1.lines.add ('');

memo1.lines.add (xmldocument1.DocumentElement.ChildN odes.Nodes[0].ChildNodes['item'].childnodes['title'].text );
memo1.lines.add ( xmldocument1.DocumentElement.ChildN odes.Nodes[0].ChildNodes ['item'].ChildNodes['link'].text );
memo1.lines.add (xmldocument1.DocumentElement.ChildN odes.Nodes[0].ChildNodes ['item'].ChildNodes['category'].text );


Плохиш   (2010-07-23 11:27:00) [1]


> Буржуй   (23.07.10 07:14) [9]
>
> у меня нет описания

Смени профессию.


Медвежонок Пятачок   (2010-07-23 11:19:00) [2]

был бы ты не тормоз, ты бы это понял еще вчера после [6]


Буржуй   (2010-07-23 11:10:00) [3]

Разобрался, надо было чайлдов узла channel перебирать...


Буржуй   (2010-07-23 10:26:00) [4]

хсним, как именно перебрать все 'item'... Если ты всё знаешь, то написать строку примера можешь наверное? а то что у рута один child я уже давно понял. В том-то и заключался вопрос, что не получается зделать это: "у каждого чайлда перебираешь его чайлдов ...".


Медвежонок Пятачок   (2010-07-23 10:21:00) [5]

причем этот единственный чайлд не является узлом <item>


Медвежонок Пятачок   (2010-07-23 10:11:00) [6]

я тебе уже сказал русским по белому.
начинаешь с рутового узла, перебираешь всех его чайлдов.
у каждого чайлда перебираешь его чайлдов и так далее.

подсказка для танкистов:
в этом твоем конкретном эрэсесе рутовый узел имеет всего одного единственного чайлда.

у рута 1(один) чайлд. больше у рута чайлдов нету.


Буржуй   (2010-07-23 09:44:00) [7]

нет, ты нормально можешь объяснить как ко всем item`ам доступ получить или нет? ниочем разговоры какие-то, поверь, читай справки, ещё в гугль отправт меня...


Медвежонок Пятачок   (2010-07-23 09:18:00) [8]

а ты поверь в то, что он аутоф баундс.
тем более что это на самом деле так и есть.


Буржуй   (2010-07-23 07:14:00) [9]

у меня нет описания, поэтому и задаю все эти вопросы и жду сутками ответов.  как чайлдов перебрать тогда? если они никак не хотят перебираться? если индекс ставишь больше 0, то list index out of bound выдает.


Плохиш   (2010-07-22 22:49:00) [10]


> Буржуй   (22.07.10 21:13) [7]
>
> Можно напримере, я не опытный... как с рута начать в моём
> случае?

Рут - это DocumentElement, а в твоём случае надо начинать с чтения описания/справки.


Буржуй   (2010-07-22 21:13:00) [11]

Можно напримере, я не опытный... как с рута начать в моём случае?


Медвежонок Пятачок   (2010-07-22 20:34:00) [12]

конечно можно.
начинаешь с рута. перебираешь всех его чайлдов.
у каждого чайлда перебираешь всех его чайлдов, а у тех чайлдов всех их чайлдов. и так до самого дна.
вот так и получишь все узлы.


Буржуй   (2010-07-22 19:37:00) [13]

Интересует именно компонент xmldocument. Ведь можно как-то все вершины посмотреть...


Медвежонок Пятачок   (2010-07-22 17:25:00) [14]

+ если результат надо всего лишь засунуть в мемо в читабельном виде, то решение такое:

рисуем файл трансформации *.xsl, в котором формируем текстовое представление информации из рсс. Далее создаем два экземпляра ixmldomdocument.
В первый грузим рсс, во второй грузим наш xsl.
После чего :

memo1.lines.text := xml1.transformnode(xml2);

и фсё.


Медвежонок Пятачок   (2010-07-22 17:20:00) [15]

чтобы не было мучительно больно, работать надо через библиотеку типов
msxml2_tlb

используя ixmldomdocument2 и xpath


Буржуй   (2010-07-22 16:37:00) [16]

Это не проходит, пробовал, только с нулём...


Плохиш   (2010-07-22 16:24:00) [17]


> подгружаю значит описание сайта, адрес соответственно и
> данные из первого item`а, а как получить доступ ко всем
> остальным?


> memo1.lines.add ( xmldocument1.DocumentElement.ChildN odes.
> Nodes[ 0].ChildNodes ['description'].Text);

Попробуй заменить индекс на другой.


Наверх

Титульная страница Поиск, карта сайта Написать письмо