PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Utilisation DLL Html Agility Pack - Parsing
Utilisation DLL Html Agility Pack - Parsing
Iniciado por Nicolas, 27,sep. 2019 14:36 - 2 respuestas
Miembro registrado
34 mensajes
Publicado el 27,septiembre 2019 - 14:36
Bonjour,

J'essaies de parser du code html via une DLL importée (Html Agility Pack).

J'arrive à lire certaines valeurs, mais toutes celles faisant appel à un attribut sont en erreur "Impossible d'accéder au sous-élément". Je me demande s'il n'y aurait pas un conflit avec la propriété ..attribut du WLangage ?

Si quelqu'un a une idée ou une alternative pour parser des pages HTML, je suis preneur.
Merci.

Exemple de l'éditeur :
https://html-agility-pack.net/online-examples/ozk9kE

Voici mon code :

HtmlDoc est un HtmlAgilityPack.HtmlDocument dynamique
HtmlDoc = allouer un HtmlAgilityPack.HtmlDocument
sHTML est une chaîne

sHTML =[
<TD class=texte width="50%">
<DIV align=right>Name :<B> </B></DIV>
</TD>
<TD width="50%">
<INPUT class=box value=John maxLength=16 size=16 name=user_name id="id_1">
<INPUT class=box value=Tony maxLength=16 size=16 name=user_name id="id_2">
<INPUT class=box value=Jams maxLength=16 size=16 name=user_name id="id_3">
<INPUT class=box value=Nick maxLength=16 size=16 name=user_name id="id_4">
</TD>
<TR vAlign=center>
]

HtmlDoc:LoadHtml(sHTML)

vNoeud est un Variant = HtmlDoc.DocumentNode.SelectNodes("//td/input")

POUR TOUT sElement de vNoeud
Trace(sElement.outerHtml) //OK
Trace(sElement.id) //OK
Trace(sElement.Attributes["value"].Value) //ERREUR
FIN
Miembro registrado
962 mensajes
Publicado el 21,diciembre 2019 - 17:19
hello,
tu peux faire comme cela par exemple :
HtmlDoc est un HtmlAgilityPack.HtmlDocument()

HtmlDoc:LoadHtml(sHTML)

vNoeud est un HtmlNodeCollection dynamique = HtmlDoc.DocumentNode.SelectNodes("//td/input")
sElement est un HtmlNode dynamique
POUR TOUT sElement de vNoeud
Trace(sElement.outerHtml) //OK
Trace(sElement.id) //OK
Trace( sElement.GetAttributeValue("value","pas trouvé"))
FIN

A noter que le deuxième paramètre de GetAttributeValue est la valeur par défaut qui est renvoyée si l'attribut n'est pas trouvé

--
Ami calmant, J.P
Mensaje modificado, 21,diciembre 2019 - 17:20
Miembro registrado
34 mensajes
Publicado el 23,diciembre 2019 - 09:43
Merci pour ta réponse.
Du coup je suis passé sur les fonctions XML de Windev et ça fonctionne très bien.
Je garde ta solution sous le coude...