Bonjour,
Je souhaite récupérer le contenu d'un tableau situé dans une page HTML.
Après recherche, j'ai choisi d'utiliser HTML agility pack.
Mon code pour récupérer la page est le suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public void lecture()
{
string url = "http://url_cible.fr";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(url);
var table = doc.GetElementbyId("tv2");
var rows = table.Element("tbody").Elements("tr");
var contacts = from r in rows
let values = r.Elements("td").Select(c => c.InnerText).ToArray()
select new donnees2
{
C_noms = values[0],
C_delais = values[1],
C_ex= values[2],
C_ec = values[3],
C_ea = values[4]
};
} |
J'ai utilisé un tuto trouvé ici : http://tlevesque.developpez.com/tuto...-agility-pack/ pour créer mon code. Je n'ai pas d'erreur du débugger, j'ai regardé avec Wireshark, et le programme télécharge bien le code source de la page... Mais il plante lamentable sur la ligne
var rows = table.Element("tbody").Elements("tr");
.
Il m'affiche comme erreur :
L'exception NullReferenceException n'a pas été gérée...
Sachant qu'il me propose deux conseils pour y remédier :
- Déterminer si l'objet est null avant d'appeler la méthode.
J'ai donc essayé en rajoutant une condition :
if (table.Element("tbody").Elements("tr")) != null);
Mais ca a fait planter le programme sur le if avec les même raisons...
-Utilisez le mot clef "new" pour créer une instance d'objet.
Mais je vois pas trop ce que je dois créer... J'ai fait comme dans l'exemple sur le tuto...
Je ne vois pas trop d'où viens l'erreur, sachant que encore une fois le débugger ne trouve pas de faute... Si quelqu'un à une idée je suis preneur...
Partager