Я пытаюсь проанализировать 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. Я заметил, что пакет Agility Pack достаточно прочен и по-прежнему будет создавать достойное дерево DOM из большинства источников HTML, даже если генерируется ParseErrors. Отбросьте другое, и пусть это блокировка будет выполняться нормально.
Если он не создал дерево DOM, вам следует изучить созданные ParseError (ы). Если он создал только частичное дерево, попробуйте выполнить рекурсию над узлами, распечатать или передать сообщение, чтобы узнать, какие части дерева DOM были построены или нет. Возможно, вам не понадобится все дерево.