[xpath]как выбрать элемент

pilot

Хочется выбрать этот элемент:
<i>text1<br/>text2</i>
Как в XPath написать путь к нему? Т.е. именно к <i/>?
Спасибо.

avinir60

Напиши подробнее, что ты хочешь сделать.
Xpath зависит от структуры всего xml-файла.

pilot

пусть этот элемент <i/> - единственный с таким потомком и таким текстом.
Тогда //i[self::child="br" and ...]
Т.е. что написать в квадратных скобках?

avinir60

Интересно, для чего тебе это понадобилось.
Держи:
  
//i[br/following-sibling::text and br/following-sibling::node='text2' and br/preceding-sibling::text and br/preceding-sibling::node='text1' and child::node[last=3]]
Проверил, работает.

Dasar

Путь зависит от родителей элемента, а не от самого элемента.
ps
можно попробовать путь //i
pps
если запостишь условия, то можно будет более подробно подсказать.

pilot

Я уже написал //i в предыдущем посте.
условия:
что написать в квадратных скобках чтобы выбрался только этот элемент?
т.е. только с таким text1 и text2 и тэгом <br/> между ними.
счас попробую то что написал

pilot

Большое спасибо. Работает.
А почему не годится просто:
//i[br/following-sibling::text="text2" and br/preceding-sibling::text="text1"]
?

avinir60

Зависит от того, насколько точно ты хочешь выбрать элемент.
Действительно, можно упростить: //i[br/following-sibling::text="text2" and br/preceding-sibling::text="text1" and child::node[last=3]]
Последнее условие нужно, чтобы отсечь варианты типа <i>text1<br/>text2<b>text3</b></i>
Оставить комментарий
Имя или ник:
Комментарий: