![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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)... если не имеет, то брать что надо (имя, значение).