Есть html
со следующей структурой
<div class="text">
<h1>Headerh1</h1>
Text1 <br/> after header1
<h3>Headerh3.1</h3>
Text2 <br/> after header3.1
<h3>Headerh3.2</h3>
Text3 <br/> after header3.2
<h3>Headerh3.3</h3>
Text4 <br/> after header3.3
</div>
Как получить текст Text1 after header1
?
div[@class='text']/text()[count(preceding-sibling::h1)=1]
- возвращает текст после всех тегов.
Найден вариант //div[@class='text']/h3[1]/preceding-sibling::text()
, хотелось бы более гибкое решение.
Если структура постоянная и, как вы отметили, <br/> может встречаться сколько угодно раз
, попробуйте получать текст после h1
и до h3
, как результат комбинации двух запросов
//div[@class='text']/h1/following-sibling::text()[1]
//div[@class='text']/h3/preceding-sibling::text()[1]
Или объединить (вдруг текст будет между <br>
)
//div[@class='text']/h1/following-sibling::text()[not(preceding-sibling::h3)]
Первая строка "Text1"
//div[@class='text']/h1/following-sibling::text()[1]
Вторая строка "after header1"
//div[@class='text']/h1/following-sibling::text()[2]
После этого сделайте конкатенацию строк.
Либо, что-то подобное:
//text()[preceding::*[contains(text(),'Headerh1')] and following::*[contains(text(),'Headerh3.1')] and not(contains(., 'Term:'))]
Виртуальный выделенный сервер (VDS) становится отличным выбором
Только начинаю печатать в поле, как сразу поле увеличивается в размере по вертикалиИ это происходит только на андроиде (на iphone не проверял)
Начал изучать aspnet mvc по книге Адама Фримена и столкнулся с частичными представлениями, так вот есть
С# Всем привет!) Есть строки вводимые пользователем (с одинак-м кол-м символов и только цифры без пробелов)