خطأ ترميز عند استخدام HTML أجيليتي حزمة
-
22-08-2019 - |
سؤال
وأنا أحاول تحليل وثيقة أتش تي أم أل استخدام بعض الرموز وجدت من هذا الموقع الفعلي ولكن أظل الحصول على خطأ في توزيع
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 حصلت بنيت أم لا. قد لا تحتاج الشجرة كلها.
لا تنتمي إلى StackOverflow