See the question and my original answer on StackOverflow

Here is the XPATH way - hmmm... everyone seems to have forgotten about the power XPATH and concentrate exclusively on C# XLinq, these days :-)

This function gets all data values associated with a name:

public static IEnumerable<string> GetData(HtmlDocument document, string name)
    return from HtmlNode node in
        document.DocumentNode.SelectNodes("//td[@class='name' and contains(text(), '" + name + "')]/following-sibling::td")
        select node.InnerText.Trim();

For example, this code will dump all 'Test2' data:

    HtmlDocument doc = new HtmlDocument();

    foreach (string data in GetData(doc, "Test2"))