2016-03-17 2 views
1

Я пытаюсь читать таблицу html, чтобы читать и изменять таблицу с помощью HtmlAgilityPack. Я пробовал с очень разными веб-сайтами, но мой код не работает.C# Html parsing HtmlAgilityPack not working

Функция SelectSingleNode возвращает значение null. Также, когда я вызываю SelectNodes вместо SelectSingleNode, результат снова равен нулю.

Ссылка на источник http://www.uefa.com/livescores/ имеет стол. Как я могу прочитать эту таблицу?

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml("http://www.uefa.com/livescores/"); 
var result = doc.DocumentNode.SelectSingleNode("//table"); 
+0

_but мой код не work_ Что не работает? Какие ошибки вы видите? Опишите, что происходит. – Jasen

+0

Я отредактировал вопрос – Yunus

ответ

1

Вы используете метод LoadHtml, который используется для загрузки HTML-строку, а не загружать HTML из URL. Однако метод Load не поддерживает загрузку содержимого из URL-адреса, и вам может потребоваться загрузить HTML отдельно, а затем загрузить его в класс HtmlDocument для его использования.

Например:

var url = "http://www.uefa.com/livescores/"; 
var content = new System.Net.WebClient().DownloadString(url); 

var doc = new HtmlAgilityPack.HtmlDocument(); 
doc.LoadHtml(content); 
var hn = doc.DocumentNode.SelectSingleNode("//table"); 

Вы также можете использовать класс HtmlWeb утилиты:

var web = new HtmlWeb(); 
var doc = web.Load(url); 
var hn = doc.DocumentNode.SelectSingleNode("//table"); 
+0

Если вывод разбора неправильный, есть ли что-нибудь исправить? Потому что мой результат не соответствует действительности. Все находятся в конце результата. Я не мог поделиться своей фактической веб-страницей. Но результат, как показано ниже test 7 test test 5 .... – Yunus

+1

Если у вас есть допустимый HTML-документ, вы можете использовать любой оператор XPath для выбора нужной разметки. – Mun

+0

В html есть hr-тег, поэтому xpath также дает ошибку. Когда я удаляю hr-метки вручную, они исправляются. Потому что hr не имеет никакого закрытия, как Я ошибаюсь? – Yunus