如何使用HTML Agility包

c# html html-agility-pack

我如何使用HTML Agility Pack

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

(注意:此代码仅为示例,不一定是最好/唯一的方法。不要在您自己的应用程序中盲目使用它。)

HtmlDocument.Load()方法还接受一个流,该流在与.NET框架中的其他面向流的类集成时非常有用。而HtmlEntity.DeEntitize()是另一种正确处理html实体的有用方法。 (谢谢马修)

HtmlDocumentHtmlNode是您最常使用的类。与XML解析器类似,它提供了接受XPath表达式的selectSingleNode和selectNodes方法。

注意HtmlDocument.Option??????布尔属性。它们控制LoadLoadXML方法处理HTML / XHTML的方式。

还有一个名为HtmlAgilityPack.chm的编译帮助文件,其中包含每个对象的完整参考。这通常位于解决方案的基本文件夹中。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因