0

この実際のサイトから見つけたコードを使用してHTMLドキュメントを解析しようとしていますが、解析エラーが発生し続けます

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(@"C:\Documents and Settings\Mine\My Documents\Random.html");

        // Use:  htmlDoc.LoadXML(xmlString);  to load from a string

        // 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
            MessageBox.Show("Oh no");
        }
        else
        {

            if (htmlDoc.DocumentNode != null)
            {
                HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//head");

                if (bodyNode != null)
                {
                    MessageBox.Show("Hello");
                }
            }
        }

どんな助けもいただければ幸いです:)

4

1 に答える 1

0

実際には、HTML は準拠していない、準拠していない、検証されていない可能性があります。XHTML または非常に単純な HTML のみが、ParseErrors を設定せずに実行されます。HTML Agility Pack はかなり堅牢で、たとえ ParseErrors が生成されたとしても、ほとんどの HTML ソースから適切な DOM ツリーを構築できることに気付きました。else をドロップし、else ブロックを正常に実行させます。

DOM ツリーが構築されなかった場合は、生成された ParseError を調査する必要があります。部分的なツリーしか構築されていない場合は、ノードの再帰、印刷、またはメッセージボックス化を試して、DOM ツリーのどの部分が構築されたかどうかを確認してください。ツリー全体は必要ないかもしれません。

于 2010-03-09T19:54:10.220 に答える