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

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

помогите составить XPath выражение


delphist ©   (2011-01-17 12:17:00) 

Есть xml-файл примерно следующего содержания:

<brands>
<cadillac>
</cadillac>
<hummer>
</hummer>
<infiniti>
</infiniti>
<jaguar>
</jaguar>
<lexus>
</lexus>
</brands>

Пишу XPath-выражение CarsXML.selectNodes('brands/*');- выбираются все подузлы узла brands, а как указать, чтобы в выбор попадали определенные подузлы, например cadillac, infiniti, jaguar.


delphist   (2011-01-17 16:01:00) [1]

а если мне нужно вывести все подузлы brands имеет ли смысл использовать XPath или же корректнее обойтись без него, Например, для нижеописанного метода как лучше:


procedure TCarsData.Prepare(ACarsXML: IXMLDOMDocument);
var
 I: Integer;
begin
 with ACarsXML.documentElement do
   for I := 0 to childNodes.length - 1 do
   begin
     Cur := childNodes[I];
     if PrepareNeeded(Cur) then
       DoPrepare(Cur);

   end;

end;

procedure TCarsData.Prepare(ACarsXML: IXMLDOMDocument);
var
 I: Integer;
begin
 with ACarsXML.selectNodes('/brands/*') do
   for I := 0 to length - 1 do
   begin
     Cur := item[I];
     if PrepareNeeded(Cur) then
       DoPrepare(Cur);

   end;

end;


delphist   (2011-01-17 13:26:00) [2]

Спасибо, уже нашел. Уточню только, проблем из-за SetProperty('SelectionLanguage','XPath') не возникнет, просто раньше юзал только IXMLDOMDocument.


Медвежонок ХМЛ   (2011-01-17 13:22:00) [3]

зато есть в IXMLDOMDocument2


delphist   (2011-01-17 13:09:00) [4]

чей это метод? в IXMLDOMDocument такого нет.


Медвежонок ХМЛ   (2011-01-17 13:05:00) [5]

SetProperty('SelectionLanguage','XPath')


han_malign   (2011-01-17 13:04:00) [6]

http://www.zvon.org/xxl/XPathTutorial/General_rus/examples.html
примеры 8, 10


delphist   (2011-01-17 13:03:00) [7]

пробовал такой вариант, почему-то ругается на name() - неизвестный метод.


Медвежонок ХМЛ   (2011-01-17 12:59:00) [8]

'/brands/*[(name()="cadillac") or (name()="infiniti") or (name()="jaguar")]'


Наверх

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