Задача
Понадобилос разобрать HTML-файлРаньше решал такие вопросы регулярными выражениями, но в этот раз задался целью найти более простые способы решения задачи.
Решение Html Agility Pack
Гугл почти сразу вывел на статьюHtml Agility Pack — удобный .NET парсер HTML
http://habrahabr.ru/post/112325/
Еще несколько статей тоже ссылались на Html Agility Pack.
Соответственно я взял эту библиотеку за основу.
Оригинальный сайт Html Agility Pack
http://htmlagilitypack.codeplex.com/
На этом сайте брал документацию, саму библиотеку установил через NuGet
Нюансы
1. кодировка и загрузка
Статья на хабре http://habrahabr.ru/post/112325/не затронула вопросы загрузки и кодировки файлов. соответственно, приведу здесь пример
var website = new HtmlWeb();
website.OverrideEncoding = Encoding.GetEncoding("windows-1251");
var doc = website.Load("[url]");
2. XPath
Html Agility Pack активно работает с XPath, а так как я с ним раньше плотно не сталкивался - пришлось учить онлайнсоответственно, вот несколько полезных ресурсов
Примеры xpath-запросов к html
http://habrahabr.ru/post/114772/
XPath - вики
https://ru.wikipedia.org/wiki/XPath
XML Path Language (XPath) 2.1
http://www.w3.org/TR/xpath-21/
Язык XML Path (XPath) версия 1.0
http://citforum.ru/internet/xpath/index.shtml
Другие ссылки по теме
Html agility pack not loading urlhttp://stackoverflow.com/questions/19793291/html-agility-pack-not-loading-url
Parsing HTML with c#.net [duplicate]
http://stackoverflow.com/questions/6063203/parsing-html-with-c-net
C# library for parsing HTML?
http://softwarerecs.stackexchange.com/questions/10773/c-library-for-parsing-html
C# and HtmlAgilityPack encoding problem
http://stackoverflow.com/questions/3452343/c-sharp-and-htmlagilitypack-encoding-problem
How to Parse HTML using C#
http://www.codeproject.com/Tips/804660/How-to-Parse-HTML-using-Csharp
Распарсить HTML в .NET и выжить: анализ и сравнение библиотек
http://habrahabr.ru/post/273807/
А альтернативы достойные ему есть?
ОтветитьУдалитьпока не находил
Удалить