Как выбрать конкретную ячейку таблицы с помощью HTML Agility Pack - PullRequest
0 голосов
/ 18 января 2012

Я должен вытащить определенные поля из ячеек в таблице HTML.Используя Firebug, я смог получить точный XPath для нужных мне ячеек (к сожалению, у ячеек нет тега id).Я думал, что мог бы использовать DocumentNode.SelectSingleNode и передать по этому пути, но, похоже, он работает неправильно.Что я делаю неправильно?Или есть лучший подход к этому, чем как я это делаю?К сожалению, у меня нет опыта работы с XPath, так что это оказалось сложнее, чем я ожидал.Вот что у меня есть (я знаю, что HTML-код особенно грязный, но я не могу его изменить):

Dim page As New HtmlAgilityPack.HtmlDocument
Dim node As HtmlAgilityPack.HtmlNode
page.LoadHtml(fileContents)
node = page.DocumentNode.SelectSingleNode("/html/body/form/div[6]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[2]")

Очень ценится.

1 Ответ

1 голос
/ 18 января 2012

Firebug может быть исправлен неработающие теги HTML. Если вы хотите выбрать Html-узел, рекомендуется использовать class или id. Например:

//div[@class='content']//table//tr[1]/td[2]

сократите путь и используйте селектор класса или идентификатора.

если таблица имеет собственный идентификатор, вы можете использовать:

//table[@id='tableid']/tr[1]/td[2]

попробуйте, вы найдете XPATH интересным.

...