Q:

Regex vs. xpath when grabbing two following blocks in html

I am trying to grab the two blocks of divs in a html file. 
<...>
  <div id="test">
  ...
  </div>
  <div id="test2">
  ...
  </div>
  ...
</...>

This is just a very simple example. 
Basically I want to find two blocks that I could as separate find with an xpath like "./div[@id="test"]" and "./div[@id="test2"]". 
However I want to catch both divs together and want to make sure that the two blocks are right next to each other. 
Can this be done in XPath or should I better use a regular expression? 
Thanks
J.

A:

To find divs you want use such Xpath
//div[@id="test"][following::*[1][name() = "div" and @id="test2"]]

It finds div with @id="test" and the 1st element after is div with @id="test2"
Unfortunately we can't use variable for temporary result, so we need to write it twice to take both divs
//div[@id="test"][following::*[1][name() = "div" and @id="test2"]] | 
//div[@id="test"][following::*[1][name() = "div" and @id="test2"]]/following::*[1]

