質問

私は、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");
                }
            }
        }

任意の助けいただければ幸いです。)

役に立ちましたか?

解決

野生では、HTMLは、非準拠の非準拠、および非検証である可能性が高いです。 XHTMLまたは非常に単純なHTMLだけではParseErrorsを移入せずに行きます。私は、HTML敏捷性パックはかなり堅牢であることに気付きましたし、今でもParseErrorsが発生しても、ほとんどのHTMLソースからまともなDOMツリーを構築します。他のドロップ、およびそのほかのブロックが正常に実行させます。

それはDOMツリーを構築していない場合は、

、あなたは、生成されたParseErrorです(複数可)を調査する必要があります。それが唯一の部分木を構築した場合は、DOMツリーの部品が組み込まれていないか、しまったかを確認するために、ノード、印刷またはmessagebox'ingの上に再帰してみてください。あなたは木全体を必要としない場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top