HTML Agilityパックの使い方 質問する

HTML Agilityパックの使い方 質問する

使い方は?HTML アジリティ パック?

私の XHTML ドキュメントは完全に有効ではありません。そのため、これを使用したいと考えました。プロジェクトでこれを使用するにはどうすればよいですか? 私のプロジェクトは C# です。

ベストアンサー1

まず、HTMLアジリティパック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 フレームワーク内の他のストリーム指向クラスとの統合に非常に便利です。While は、HtmlEntity.DeEntitize()HTML エンティティを正しく処理するためのもう 1 つの便利なメソッドです。(Matthew に感謝)

HtmlDocumentこれらはHtmlNode最もよく使用するクラスです。XML パーサーと同様に、XPath 式を受け入れる selectSingleNode メソッドと selectNodes メソッドを提供します。

ブール型プロパティに注意してくださいHtmlDocument.Option??????。これらは、LoadおよびLoadXMLメソッドが HTML/XHTML を処理する方法を制御します。

また、各オブジェクトの完全なリファレンスを含む、HtmlAgilityPack.chm というコンパイル済みのヘルプ ファイルもあります。これは通常、ソリューションのベース フォルダーにあります。

おすすめ記事