В чистом XPATH поверх XML вы должны использовать выражение XPATH, например: //preceding-sibling::br
или //following-sibling::br
(см. Здесь справку по Оси XPATH )
Но XPATHРеализация через HTML, которую вы найдете в Html Agility Pack, не поддерживает чистый текстовый узел или (узел атрибута) в выражениях выбора XPATH (//br/text()
или //br/@blah
не работают, например).Обратите внимание, что это работает в фильтрах, поэтому эти //br[text()='blah']
или //br[@att='blah']
работают.
Итак, вернемся к вопросу, вам нужно объединить XPATH и код, как-то так:
HtmlDocument doc = new HtmlDocument();
doc.Load(myHtmlFile);
foreach (HtmlNode p in doc.DocumentNode.SelectNodes("//br"))
{
Console.WriteLine(p.PreviousSibling.InnerText.Trim());
}
Это выдаст
Jack Janson
309 123 456