Ты почти сделал это сам.
Чтобы получить набор узлов из двух элементов (который может быть не тем, что вы хотите), вы можете использовать это:
//div/b[contains(text(),'Sida:')]/following-sibling::a[
position() = 3 or position() = 4
]
Примечание. Используйте //
только тогда, когда схема неизвестна.
Чтобы получить объединенное строковое значение:
concat(
//div/b[contains(text(),'Sida:')]/following-sibling::a[3],
//div/b[contains(text(),'Sida:')]/following-sibling::a[4]
)
Выход с входом ниже будет 45
.
XML тестовый образец:
<t>
<div>bla-bla</div>
<div id="test">
<div>
<b>Sida: </b>
<a>1</a> «
<a>3</a>
<a>4</a>
<a>5</a> »
<a>814</a>
</div>
</div>
<div>bla-bla</div>
</t>