запрос xpath для поиска элемента с условием, которое соответствует значению атрибута и дочернего узла

У меня есть 2 элемента с одинаковым атрибутом, но с разными значениями дочерних узлов. Могу ли я запросить, чтобы найти конкретный элемент, который соответствует атрибуту, а также значению дочернего узла. Чтобы быть конкретным, это образец xml, который я использую для запроса (каждый элемент в исходном xml имеет более 10 дочерних узлов).

 <Book size="2">
  <Title>abc</Title>
  <Price>10</Price>
 </Book>
 <Book size="2">
  <Title>xyz</Title>
  <Price>20</Price>
 </Book>
 <Book size="4">
  <Title>Harry</Title>
  <Price>10</Price>
 </Book>

Итак, теперь я хочу найти элемент Book, в котором есть @size = "2" и Title = xyz.

Возможно ли это с помощью метода SelectSingleNode? Если нет, то как это сделать?

Спасибо


person anamik    schedule 19.04.2011    source источник
comment
возможный дубликат выражения Xpath с несколькими предикатами   -  person Don Roby    schedule 20.04.2011


Ответы (2)


Этот:

//Book[@size='2'][Title='xyz']

Или это:

//Book[@size='2' and Title='xyz']

Обратите внимание, что использование // не рекомендуется, если ваша схема известна.

person Wayne    schedule 19.04.2011

Это работает?

//Book[@size='2']//Title[text() = "xyz"]/..
person Steve Wellens    schedule 19.04.2011