سؤال

وأنا أحاول تحليل وثيقة أتش تي أم أل استخدام بعض الرموز وجدت من هذا الموقع الفعلي ولكن أظل الحصول على خطأ في توزيع

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 غير قوية إلى حد ما، وسوف لا يزال بناء شجرة DOM لائقة من معظم المصادر HTML، حتى لو يتم إنشاؤها ParseErrors. إسقاط آخر، وترك تلك الكتلة آخر تنفيذ بشكل طبيعي.

إذا كان لم يبن شجرة DOM، ثم عليك أن التحقيق في ParseError (ق) التي تم إنشاؤها. إذا كان يبنى إلا شجرة جزئية، في محاولة recursing على مدى العقد أو الطباعة أو messagebox'ing لمعرفة أي أجزاء من شجرة DOM حصلت بنيت أم لا. قد لا تحتاج الشجرة كلها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top