Html Agility Pack selectnodes возвращает null

c# html-agility-pack html-parsing

Вопрос

Я работаю над устройством Windows Phone 8 и пытаюсь разобрать html-документ с пакетом обновления html с http://www.livescience.com/41480-3d-printed-kidneys-take-small-steps.html. Я могу получить <title> но теперь я хочу получить теги <p> из этого документа. Я пробовал эти два решения один и два, но он не работает. Это мой фактический код, основанный на этих решениях

private void loadDoc()
    {
        try
        {
            HtmlWeb.LoadAsync("http://www.livescience.com/41480-3d-printed-kidneys-take-small-steps.html", Html_Completed);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

    private void Html_Completed(object sender, HtmlDocumentLoadCompleted e)
    {
        doc = e.Document;
        title = doc.DocumentNode.SelectSingleNode("//title");
        p = doc.DocumentNode.SelectNodes("//p");
        foreach(var node in p)
        {
          pr = node.InnerText; //that's the text you are looking for
        }
        text1.Text = title.InnerText;
        if (!pr.Equals("") && pr != "")
        {
            text2.Text = pr;
        }
        else
        {
            MessageBox.Show("null");
        }
    }

Я использую if block, чтобы определить, возвращает ли foreach null. Кто-нибудь знает, как решить эту проблему? Буду признателен за любую помощь. Спасибо.

Популярные ответы

Попробуйте сделать:

p = doc.DocumentNode.SelectNodes(".//p");

вместо:

p = doc.DocumentNode.SelectNodes("//p");

поскольку p является типом тега, а не классом или id.



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему