Html Agility Pack selectnodes renvoie la valeur null

c# html-agility-pack html-parsing

Question

Je travaille sur un appareil Windows Phone 8 et j'essaie d'analyser le document HTML avec le pack d'agilité HTML à l' adresse http://www.livescience.com/41480-3d-printed-kidneys-take-small-steps.html. Je peux obtenir le <title> tag facilement mais maintenant je veux obtenir les balises <p> entières de ce document. J'ai essayé ces deux solutions un et deux mais cela ne fonctionne pas. Ceci est mon code actuel basé sur ces solutions

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");
        }
    }

J'utilise if block pour déterminer si foreach renvoie null. Est-ce que quelqu'un sait comment résoudre ce problème? Je vais apprécier toute aide. Je vous remercie.

Réponse populaire

Essayez de faire:

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

au lieu de:

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

puisque p est un type de balise, pas une classe ou un identifiant.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi