title: XPath selecting multiple elements with predicates
body: <p>I have an XPath query which is doing what I want, namely selecting a union of 'surname' &amp; 'given-names' with the given predicates (It's actually either/or that I need, but the union works fine):</p>
  
  <pre><code>/header/authors/surname[./text() and @id='1']
  |
  /header/authors/given-names[./text() and @id='1']
  </code></pre>
  
  <p>However this seems overly long-winded to me and I feel that it should be possible to do something more succinct such as:</p>
  
  <pre><code>/header/authors/(surname|given-names)[./text() and @id='1']
  </code></pre>
  
  <p>... but this version is not valid XPath.</p>
  
  <p>Can anyone tell me of a neater way of writing the original XPath expression which doesn't require the full path to be written twice?</p>
  
  <p>Thanks</p>
  
  <p>Richard</p>