Frage

Ich versuche, ein HTML-Dokument zu analysieren mit einigem Code, den ich von diesem aktuellen Standort gefunden aber ich erhalte ein Parsing-Fehler

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

Jede mögliche Hilfe würde geschätzt werden:)

War es hilfreich?

Lösung

In der Wildnis ist HTML wahrscheinlich nicht-konforme, nicht konforme und nicht-Validieren sein. Nur XHTML oder sehr einfacher HTML gehen ohne ParseErrors bevölkert. Ich habe bemerkt, dass das HTML-Agility-Pack ziemlich robust ist und wird immer noch einen anständigen DOM-Baum von den meisten HTML-Quellen bauen, auch wenn ParseErrors erzeugt werden. Schau mal die andere, und lassen, dass auch Block normal ausgeführt werden.

Wenn es nicht den DOM-Baum bauen haben, dann sollten Sie die ParseError (n) untersuchen, die erzeugt wurden. Wenn es nur einen Teilbaum gebaut, versuchen Rekursion über den Knoten, Drucken oder messagebox'ing, um zu sehen, welche Teile des DOM-Baum wurde gebaut oder nicht. Sie werden vielleicht nicht den ganzen Baum benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top