Parser une page HTML, utilisation d'un assemblage .net HTML Agility pack
Bonjour à tous,
Dans mon programme, je dois "parser" une page html afin de récupérer des valeurs.
Ex: récupérer la valeur dans une balise DIV ayant comme id "commande".
Apres quelques recherches , je suis tombé sur un assemblage .net permettant de parser le code HTML, il s'agit de HTML AGILITY PACK. Par contre j'ai quelques difficultés pour l'exploiter.
J'arrive à l'importer dans windev et à le déclarer, J'arrive aussi à charger mon fichier html dedans.
Code:
1 2 3
|
MonHtml est un "HtmlAgilityPack.HtmlDocument"
MonHtml.Load("commande.html") |
J'arrive aussi à retrouver un élémént par id, le code ci dessous me renvoi bien le texte contenu dans la balise div ayant pour id copyright
Code:
1 2
|
trace(MonHtml.GetElementbyId("copyright").InnerText) |
par contre je dois faire une recherche par classe au lieu de l'id et la cela se complique.
Voici le code en C# mais je n'arrive pas a le traduire
Code:
1 2 3 4 5 6 7 8 9 10
|
var titles = page.DocumentNode.SelectNodes("//h2[@class='entry-title']");
// Returns all titles on the home page of this site in an array.
//To process the list just iterate through it.
List<string> pageTitles = new List<string>();
foreach (var title in titles)
{
pageTitles.Add(title.InnerText);
} |
J'ai essayer avec le code ci-dessous mais cela ne fonctionne pas.
Code:
1 2 3 4 5 6 7
|
TitleElement est variant
TitleElement = MonHtml.DocumentNode.SelectNodes("//li[@class='last_sold']")
POUR TOUT MonElem DE TitleElement
Trace (MonElem)
FIN |
j'ai une erreur du style
Vous avez appelé la fonction Trace.
Le passage du paramètre 1 a provoqué une erreur.
Un élément de type 'objet .NET' ne peut pas être converti vers le type 'chaîne UNICODE'.
Pourriez vous m'aider à corriger ce code afin de récupérer les éléments.. Si quelqu'un à un autre assemblage .net ou une autre méthode pour récupérer les infos dans une page HTML, je suis aussi preneur
Merci d'avance
Guillaume