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

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

XML разбор [D6, Win2k]


StarCon ©   (2002-07-17 12:27:00) 

Используется компонент дельфи6 XMLDocument
делаю перебор нодов, вывожу результат:
Memo1.Lines.Add(XML.ChildNodes[i].NodeName)
вот результат:
document
#text
form_101050100005
#text
page_101050100005
#text
rnn
#text
#text
что за "#text"? как от этого избавиться?
если использую
Memo1.Lines.Add(XML.ChildNodes[i].Text)
чтобы посмотреть значение нода, то опять лажа:
значения идут с символами след.строки (причем по нескольку штук)

Все что мне надо - это сделать разбор ХМЛ и получить список нодов и их значений. Может быть есть у кого подходящий пример или посоветуете какие-нибудь компоненты нормальные использовать?


Сатир   (2002-07-17 16:47:00) [1]

есть разные типы нодов и нужно проверять их тип перед тем как приступать к дальнейшей обработке (в основном, это извлечение аттрибутов и текста), поэтому нужно проверять тып ноды.
с родным дельфийским парсером я не работал, но предполагаю, что у его парсера должно быть публичное свойство типа NodeType


StarCon   (2002-07-17 14:37:00) [2]

if not AChilds[i].HasChildNodes
then Memo1.Lines.Add(AChilds[i].Text)
else Memo1.Lines.Add(AChilds[i].NodeName);
вроде работает, а что делать с символами перевода строки?
неужели придется вырезать с помощью COPY?



a.verichev   (2002-07-17 13:23:00) [3]

все эти #text это служебные ноды (так сказать - структура xml такая). дабы получить значение ноды, надо проверить, а имеет ли оно child (что то вроде hasChilds)... если не имеет, то брать что надо (имя, значение).


Наверх

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