Получение текста из HTML на WP7 с использованием HtmlAgilityPack - PullRequest
2 голосов
/ 10 декабря 2011

Я пытаюсь извлечь текст из 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, версия = 2.0.5.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35». D: \ test \ test \ MainPage.xaml.cs 58

Я должен добавить, что я добавил ссылку System.Xml, и я все еще получаю эту ошибку. Можете ли вы помочь мне, что это за проблема? Спасибо.

Ответы [ 3 ]

8 голосов
/ 11 декабря 2011

Спасибо. Я понял, что мне нужно добавить ссылку на System.Xml.XPath из папки Silverlight 4.0, доступной в родительской папке Microsoft SDK.

1 голос
/ 11 декабря 2011

С 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();
        }
0 голосов
/ 11 декабря 2011

В нем говорится, что вам нужно добавить ссылку на System.Xml. XPath , а не System.Xml.

...