Я пытаюсь извлечь текст из HTML с помощью HtmlAgilityPack. Я успешно добавил HtmlAgilityPack в свой проект. Тем не менее, я попробовал следующий код для извлечения основного текста:
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(filePath);
// 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
}
else
{
if (htmlDoc.DocumentNode != null)
{
HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");
if (bodyNode != null)
{
// Do something with bodyNode
}
}
}
и я получаю следующую ошибку при создании проекта.
Ошибка 1 Тип «System.Xml.XPath.IXPathNavigable» определен в сборке, на которую не ссылаются. Вы должны добавить ссылку на сборку «System.Xml.XPath, Version = 2.0.5.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35». D: \ test \ test \ MainPage.xaml.cs 58
Я должен добавить, что я добавил ссылку System.Xml, и я все еще получаю эту ошибку. Не могли бы вы помочь мне решить эту проблему? Благодарю.
Благодарю. Я понял, что мне нужно добавить ссылку на System.Xml.XPath из папки Silverlight 4.0, доступной в родительской папке Microsoft SDK.
С HAP по телефону вам придется использовать Linq2Xml, чтобы найти материал в анализируемом HTML. Возможно, вам придется создать версию телефона из источника (HAPPhone).
public void Hap()
{
HtmlWeb.LoadAsync("http://www.page.com", OnCallback);
}
private void OnCallback(object s, HtmlDocumentLoadCompleted htmlDocumentLoadCompleted)
{
var htmlDocument = htmlDocumentLoadCompleted.Document;
var test = htmlDocument.DocumentNode.Descendants("select").ToList();
var test2 = (from h in htmlDocument.DocumentNode.Descendants("select")
where h.Attributes["id"].Value == "stateDropdown"
select h).FirstOrDefault().ChildNodes.ToList();
}