Why not just do:
var head = doc.DocumentNode.SelectNodes("xpath1");
var children = head.SelectNodes("xpath2");
?
For the code in the example you would do:
var containerNodes = doc.DocumentNode.SelectNodes("//ul/li");
foreach(var n in containerNodes)
{
var headNode = n.SelectSingleNode("h1");
var subNodes = n.SelectNodes("ul/li");
}