У меня есть запрос XPath, который делает то, что я хочу, а именно, выбирая объединение «фамилия» и «данные-имена» с данными предикатами (это на самом деле либо / или мне нужно, но объединение работает нормально):
/header/authors/surname[./text() and @id='1']
|
/header/authors/given-names[./text() and @id='1']
Однако мне это кажется слишком скучным, и я чувствую, что можно сделать что-то более лаконичное, например:
/header/authors/(surname|given-names)[./text() and @id='1']
... но эта версия недействительна XPath.
Может кто-нибудь рассказать мне о более аккуратном способе написания оригинального выражения XPath, в котором не требуется писать полный путь дважды?
Спасибо
Richard