У меня есть запрос 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, который не требует, чтобы полный путь был написан дважды?
Спасибо
Ричард