можно ли написать универсальный xpath-запрос, в котором будет меняться содержимое contains, чтобы получить эти текстовые значения.
Короткий ответ
//article[@class='eText']/p/b[. = 'Жанр:']/following-sibling::text()[1]
Xml:
<article class="eText">
<p class="">
<b class="">Жанр:</b>вфывафыва
<b class="">Время:</b> 22 х ~ 00:24:00
</p>
</article>
XPath result:
Text='вфывафыва'
-----------------------------------
Правильный ответ
//article[@class='eText']/p/b[text() = 'Жанр:'][generate-id(following-sibling::text()[1]/preceding-sibling::node()[1]) = generate-id(.)]/normalize-space(following-sibling::text()[1])
Xml:
<article class="eText">
<p class="">
<b class="">Жанр:</b><b class="">Жанр:</b>Многоголосый дубляж от Wakanim
<b class="">Время:</b> 22 х ~ 00:24:00
</p>
</article>
XPath result:
String='Многоголосый дубляж от Wakanim'
-----------------------------------
(Тип учитывать возможное пустое значение после тега
<b>
. Незн насколько наглядно проиллюстрировал)
Если что не понятно, то спрашивайте
PS: Вопрос знатокам: реально ли упростить второй вариант без потери функционала?