Pertama, instal paket nuget HTMLAgilityPack ke proyek Anda.
Kemudian, sebagai contoh:
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: Kode ini adalah contoh saja dan belum tentu pendekatan yang terbaik / satu-satunya. Jangan menggunakannya secara membabi buta dalam aplikasi Anda sendiri.)
The HtmlDocument.Load()
Metode juga menerima aliran yang sangat berguna dalam mengintegrasikan dengan kelas berorientasi aliran lain dalam rangka NET. Sedangkan HtmlEntity.DeEntitize()
metode lain yang berguna untuk memproses entitas html dengan benar. (terima kasih Matthew)
HtmlDocument
dan HtmlNode
kelas yang paling sering Anda gunakan. Mirip dengan parser XML, ia menyediakan metode selectSingleNode dan selectNodes yang menerima ekspresi XPath.
Perhatikan HtmlDocument.Option??????
properti boolean. Ini mengontrol bagaimana Load
dan LoadXML
metode akan memproses HTML / XHTML Anda.
Ada juga file bantuan yang dikompilasi yang disebut HtmlAgilityPack.chm yang memiliki referensi lengkap untuk masing-masing objek. Ini biasanya di folder dasar dari solusi.