Вот xpath для последовательного получения 2-го узла с тем же именем.
//*[local-name()=name(following-sibling::*)]/following-sibling::*
Вы можете использовать либо имя, либо локальное имя.
//*[name()=name(following::*)]/following-sibling::*
Редактировать:
Вот xpath для выбора всех элементов, которые являются последовательными и имеют одинаковое имя тега (работает, даже если у вас есть более 2 последовательных элементов с одинаковым тегом)
//*[name()=name(following-sibling::*[1])]|//*[name()=name(preceding-sibling::*[1])]
К вашему сведению: у меня естьне жестко закодировано имя тега, поэтому он будет выбирать любой тег, который является последовательным, если вы ищете конкретный тег, пожалуйста, обновите *
с именем тега.
Редактировать: xpath используется OP.
//ifs[following-sibling::*[1][self::ifs] or preceding-sibling::*[1][self::ifs]]