Wie verwende ich das HTML-Agility-Paket?

c# html html-agility-pack

Frage

Wie verwende ich das HTML Agility Pack ?

Mein XHTML-Dokument ist nicht vollständig gültig. Deshalb wollte ich es benutzen. Wie verwende ich es in meinem Projekt? Mein Projekt ist in C #.

Beliebte Antwort

Installieren Sie zuerst das HTMLagilityPack- nugget-Paket in Ihrem Projekt.

Dann, als ein Beispiel:

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
        }
    }
}

(Hinweis: Dieser Code ist nur ein Beispiel und nicht unbedingt der beste / einzige Ansatz. Verwenden Sie ihn nicht blind in Ihrer eigenen Anwendung.)

Die HtmlDocument.Load() -Methode akzeptiert auch einen Stream, der bei der Integration mit anderen HtmlDocument.Load() Klassen im .NET-Framework sehr nützlich ist. Während HtmlEntity.DeEntitize() ist eine weitere nützliche Methode für die Verarbeitung von HTML-Entitäten korrekt. (Danke Matthew)

HtmlDocument und HtmlNode sind die am HtmlNode Klassen. Ähnlich wie ein XML-Parser stellt er die selectSingleNode- und selectNodes-Methoden bereit, die XPath-Ausdrücke akzeptieren.

HtmlDocument.Option?????? die HtmlDocument.Option?????? Boolesche Eigenschaften. Diese steuern , wie die Load und LoadXML Methoden , um Ihre HTML / XHTML verarbeiten werden.

Es gibt auch eine kompilierte Hilfedatei namens HtmlAgilityPack.chm, die eine vollständige Referenz für jedes der Objekte enthält. Dies ist normalerweise im Basisordner der Lösung.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum