Renvoie null dans HtmlAgilityPack

c# html-agility-pack

Question

Je veux utiliser ce code mais il retourne NULL dans tous ces paramètres! voudriez-vous s'il vous plaît aider comment le réparer ou quel est le problème?

Cliquez ici pour une image montrant ce qui s'est passé.

code:

    HtmlWeb hw = new HtmlWeb();

    private void button1_Click(object sender, EventArgs e)
        {
            Crawler("http://www.avval.ir/directory", 0);
        }

    public void Crawler(string url, int pid)
        {


            try
            {

                HtmlAgilityPack.HtmlDocument doc = hw.Load("http://www.avval.ir/directory");
                HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//a[@class='metatag-topi metatag-keywords']");
                HtmlNodeCollection nodes2 = doc.DocumentNode.SelectNodes("//div[@class='pagination']/a[@href]");
                HtmlNodeCollection phone = doc.DocumentNode.SelectNodes("//p[@class='phone fRight ml10']");

            }
        }

Réponse acceptée

Mec, il semble que vous ayez une faute de frappe dans votre sélecteur xpath, voir:

HtmlNodeCollection nodes = 
    doc.DocumentNode.SelectNodes("//a[@class='metatag-topi metatag-keywords']");

Vous utilisez ici //a[@class='metatag-topi metatag-keywords'] expression //a[@class='metatag-topi metatag-keywords'] qui sélectionne toutes les balises <a> avec la valeur d'attribut de class metatag-topi metatag-keywords . Mais le problème, c'est que la page que vous essayez d'appliquer votre expression ne contient pas de tels éléments, mais contient des <a class="metatag-topic metatag-keywords"> (lettre c manquante à la fin du topic ) .

Il suffit de changer cette ligne pour:

HtmlNodeCollection nodes = 
    doc.DocumentNode.SelectNodes("//a[@class='metatag-topi metatag-keywords']");

et ça devrait marcher.


Réponse populaire

DocumentNode.SelectNodes peut renvoyer null si aucun nœud n'est introuvable.

Vous pouvez cocher cette case. Pourquoi DocumentNode.SelectNodes renvoie null




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