Получение текста из HTML на WP7 с использованием HtmlAgilityPack

c# html-agility-pack windows-phone-7

Вопрос

Я пытаюсь извлечь текст из 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();
        }


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow