title: combining XPATH axes (preceding-sibling & following-sibling)
body: <p>Say I have the following UL:</p>
  
  <pre><code>&lt;ul&gt;
    &lt;li&gt;barry&lt;/li&gt;
    &lt;li&gt;bob&lt;/li&gt;
    &lt;li&gt;carl&lt;/li&gt;
    &lt;li&gt;dave&lt;/li&gt;
    &lt;li&gt;roger&lt;/li&gt;
    &lt;li&gt;steve&lt;/li&gt;
  &lt;/ul&gt;
  </code></pre>
  
  <p>I need to grab all the LIs between bob &amp; roger. I can grab everything after bob with <code>//ul/li[contains(.,"bob")]/following-sibling::li</code>, and I can grab everything before roger with <code>//ul/li[contains(.,"roger")]/preceding-sibling::li</code>. The problem is when I try to combine the two, I end up getting extra results.</p>
  
  <p>For example, <code>//ul/li[contains(.,"bob")]/following-sibling::li[contains(.,"roger")]/preceding-sibling::li</code> will of course get everything before roger, instead of ignoring the items before bob.</p>
  
  <p>Is there a way to chain these two xpaths together?</p>