2009-07-27 2 views
1
<?xml version="1.0" encoding="UTF-8"?> 
<Country> 
    <States> 
    <County> 
     <popularity>39</popularity> 
     <name>Orange</name> 
     <id>13811</id> 
     <url>http://www.url.gov</url> 
     <overview>Orange County Overview</overview> 
     <Cities> 
     <City name="City #1" size="big" population="33333"/> 
     <City name="City #2" size="medium" population="2222"/> 
     <City name="City #3" size="Small" population="111"/> 
     </Cities> 
    </County> 
    </States> 
</Country> 

Какое эквивалентное выражение XPath «выберите [города], где [имя] =« Оранжевый »для XML выше?XPath | path .Net

Редактировать 07/27/09 12:29 утра PST:

Я получил его! Спасибо всем за советы, вы великие учителя. я был в состоянии выбрать все атрибуты из всех «Сити» с

/Country/States/County[name='Orange']/Cities/City

+0

Не могли бы вы уточнить, какие элементы вы хотите выбрать и какой элемент/атрибут вы хотите фильтровать? (вы хотите, чтобы все элементы или все элементы ) –

+0

Я хотел получить все атрибуты один за другим из всех . Спасибо, ребята, за ваши ответы. – 2009-07-27 06:21:56

ответ

1

//Cities[../name="Orange"]/*

Предикат в скобках [../name="Orange"] примерно эквивалентен ИНЕКЕМ.

+1

/Country/States/County/Cities[../name='Orange '] было бы лучше. Двойные косые черты ужасно неэффективны. С образцом документа, а не с большим количеством документов, но для больших документов он помогает устранить полное сканирование дерева. –

+0

«Двойные слэши ужасно неэффективны» ?! По моему опыту, оператор dependents() довольно эффективен по сравнению с проверкой имен всего пути элементов XML. Однако это зависит от индекса, используемого в реализации XPath. – vog

Смежные вопросы