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

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

XML! Намекните!


timekiller ©   (2007-10-17 23:31:00) 

Простите самого наиглупейшего програмера на всей планете!
Пишу парсер

 XMLD:=CoDoc.Create;
 XMLD.load(URL);
 r:=XMLD.documentElement;
 FNode:=r.SelectSingleNode('//header');
 FNode:=FNode.SelectSingleNode('//item');
 MainFRM.Caption:=FNode.SelectSingleNode('//docname').text;

Тоесть считываю теги без проблем <hren>СЧИТАНО</hren> ...

Вопрос:
а как считать параметры тегов?? если например я напишу <hren name="OPA_ETO_HREN" width="666" итд>ТЕКСТ</hren>


timekiller   (2007-10-25 12:21:00) [1]

как написать? if exist или if <>'' ??

вобще ниче не соображаю ..


clickmaker   (2007-10-25 11:46:00) [2]

Node.HasAttribute ?


timekiller   (2007-10-25 11:40:00) [3]

Мож кто подскажет как сделать проверку "Сучествует атрибут или нет" ??


timekiller   (2007-10-25 10:40:00) [4]

Вощм так посоветовали:

MainFRM.Caption:=FNode.attributes.getNamedItem('name').nodeValue;

работаед!


timekiller   (2007-10-25 10:31:00) [5]

getAttribute вопще не признает, что в USES писать окроме MSXML ???


Reindeer Moss Eater   (2007-10-18 09:28:00) [6]

r.SelectSingleNode('/header/item/docname /@name')


Skyle   (2007-10-18 06:50:00) [7]

FNode := XMLD.selectSingleNode('header/item');
if Assigned(FNode) then
 MainFRM.Caption := VarAsType(FNode.getAttribute('mycaption'), varString);


Главное найти ноду, потом у неё можно спрашивать getAttribute.

А то, что написано у

> Slym ©   (18.10.07 05:20) [1]

больше похоже на поиск конкретной ноды.
например в документе
<root>
 <item id="1"/>
 <item id="2"/>
 .......
  <item id="x"/>
</root>


можно искать нужный нод вот так

FNode := XMLD.selectSingleNode('root/item[@id=' + IntToStr(NeededId) +  ']');


Slym   (2007-10-18 05:20:00) [8]

вроде так
r:=XMLD.documentElement;
MainFRM.Caption:=r.SelectSingleNode('/header/item/docname@name').text;
MainFRM.Caption:=r.SelectSingleNode('/header/item/docname@width').text;

или ищем /header/item/docname а потом обращаемся к нему attributes['name']


Наверх

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