Как использовать пакет гибкости HTML

c# html html-agility-pack

Вопрос

Как использовать пакет гибкости HTML ?

Мой XHTML-документ не является полностью действительным. Вот почему я хотел его использовать. Как использовать его в своем проекте? Мой проект находится на C #.

Популярные ответы

Сначала установите пакет HTMLAgilityPack nuget в свой проект.

Затем, в качестве примера:

HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();

// There are various options, set as needed
htmlDoc.OptionFixNestedTags=true;

// filePath is a path to a file containing the html
htmlDoc.Load(filePath);

// Use:  htmlDoc.LoadHtml(xmlString);  to load from a string (was htmlDoc.LoadXML(xmlString)

// ParseErrors is an ArrayList containing any errors from the Load statement
if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)
{
    // Handle any parse errors as required

}
else
{

    if (htmlDoc.DocumentNode != null)
    {
        HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");

        if (bodyNode != null)
        {
            // Do something with bodyNode
        }
    }
}

(NB: этот код является примером только и не обязательно лучшим / единственным подходом. Не используйте его вслепую в своем собственном приложении.)

Метод HtmlDocument.Load() также принимает поток, который очень полезен при интеграции с другими классами, ориентированными на поток, в платформе .NET. Хотя HtmlEntity.DeEntitize() - еще один полезный метод для правильной обработки html-объектов. (спасибо Мэтью)

HtmlDocument и HtmlNode - это классы, которые вы будете использовать больше всего. Подобно парсеру XML, он предоставляет методы selectSingleNode и selectNodes, которые принимают выражения XPath.

Обратите внимание на HtmlDocument.Option?????? boolean свойства. Они управляют тем, как методы Load и LoadXML обрабатывают ваш HTML / XHTML.

Существует также скомпилированный файл справки, называемый HtmlAgilityPack.chm, который имеет полную ссылку для каждого из объектов. Обычно это находится в базовой папке решения.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow