Comment utiliser le pack d'agilité HTML

c# html html-agility-pack

Question

Comment utiliser le pack d'agilité HTML ?

Mon document XHTML n'est pas complètement valide. C'est pourquoi je voulais l'utiliser. Comment l'utiliser dans mon projet? Mon projet est en C #.

Réponse populaire

Commencez par installer le package de nuget HTMLAgilityPack dans votre projet.

Ensuite, à titre d'exemple:

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: Ce code est un exemple seulement et pas nécessairement la meilleure / seule approche. Ne l'utilisez pas aveuglément dans votre propre application.)

La méthode HtmlDocument.Load() accepte également un flux très utile pour l'intégration à d'autres classes orientées sur les flux du framework .NET. Bien que HtmlEntity.DeEntitize() soit une autre méthode utile pour traiter correctement les entités HTML. (merci Matthew)

HtmlDocument et HtmlNode sont les classes que vous utiliserez le plus. Semblable à un analyseur XML, il fournit les méthodes selectSingleNode et selectNodes qui acceptent les expressions XPath.

Faites attention à la HtmlDocument.Option?????? propriétés booléennes. Celles-ci contrôlent le LoadXML méthodes HTML / XHTML par les méthodes Load et LoadXML .

Il existe également un fichier d'aide compilé appelé HtmlAgilityPack.chm qui contient une référence complète pour chacun des objets. C'est normalement dans le dossier de base de la solution.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi