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