IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Lire les lignes d'une table sur une page HTML (pour insertion sur une table de données)


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Points : 37
    Points
    37
    Par défaut Lire les lignes d'une table sur une page HTML (pour insertion sur une table de données)
    Bonjour,

    Je suis entrain de développer une application en Windev, mon application charge une page web sur un champs HTML, cette page contient une table HTML, je veux savoir si windev permet de lire ces données ligne par ligne pour pouvoir par exemple l'utiliser sur l'application après insertion sur une table hyperfile par exemple...

    je serai très reconnaissant si vous pouvez m'aider.

    bonne journée

  2. #2
    Membre éprouvé Avatar de wimbish
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 416
    Points : 1 073
    Points
    1 073
    Par défaut
    A priori, je dirais que ces fonctions n'existent pas.

    Tu va devoir "parser" manuellement le contenu html de la page.
    Fait un bout de code qui lit le code html et va rechercher la div <table> ("éventuellement tu contrôle avec le nom de la classe si elle existe), puis qui extrait les infos des balises <td><tr> pour les injecter dans la base.
    Christophe.

    Tous les chemins mènent à Rome http://doc.pcsoft.fr/fr-FR/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour à tous,

    Pour une page HTML "simple", je trouve que la proposition de wimbish est bonne, car pragmatique.
    Même s'il faut coder un peu, ça reste des chaînes de caractères.

    En revanche, dans le cas où la page HTML est complexe, programmer soi-même l'analyseur peut s'avérer une entreprise longue et fastidieuse, pleine d'embûches et de subtilités.

    Aussi, il est possible d'utiliser le composant ActiveX Microsoft WebBrowser qui peut charger la page HTML pour ensuite donner accès au modèle du document HTML (DOM, Document Object Model). Et avec le DOM, tout est facilité.
    Je reconnais que c'est un gros travail, et notamment assimiler la manipulation du DOM.
    Mais pour une page HTML complexe, il y a plus de chance de réussite dans un temps raisonnable avec cette deuxième solution.

    Le composant composant WebBrowser peut se manipuler sans interface utilisateur, via l'automation, ou alors dans un champ ActiveX.
    Il y a quelques exemples avec Windev.

    Bon courage.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut DOM d'une page HTML avec MSHTML
    Bonjour,

    Citation Envoyé par OnePoint Voir le message

    Aussi, il est possible d'utiliser le composant ActiveX Microsoft WebBrowser qui peut charger la page HTML pour ensuite donner accès au modèle du document HTML (DOM, Document Object Model). Et avec le DOM, tout est facilité.
    Je reconnais que c'est un gros travail, et notamment assimiler la manipulation du DOM.
    Mais pour une page HTML complexe, il y a plus de chance de réussite dans un temps raisonnable avec cette deuxième solution.

    Le composant composant WebBrowser peut se manipuler sans interface utilisateur, via l'automation, ou alors dans un champ ActiveX.
    Il y a quelques exemples avec Windev.
    Si on veut juste accéder au DOM d'une page HTML, il est possible d'utiliser directement le composant ActiveX MSHTML.
    En fait, le composant WebBrowser utilise aussi MSHTML.

    J'ai traduit en WLangage un exemple Python simple.
    (origine: https://www.safaribooksonline.com/li...3/ch12s12.html).
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    from win32com.client import Dispatch
    html = Dispatch('htmlfile')    # the disguise for MSHTML as a COM server
    html.writeln( "<html><header><title>A title</title>"
         "<meta name='a name' content='page description'></header>"
         "<body>This is some of it. <span>And this is the rest.</span>"
         "</body></html>" )
    print "Title: %s" % (html.title,)
    print "Bag of words from body of the page: %s" % (html.body.innerText,)
    print "URL associated with the page: %s" % (html.url,)
    print "Display of name:content pairs from the metatags: "
    metas = html.getElementsByTagName("meta")
    for m in xrange(metas.length):
        print "\t%s: %s" % (metas[m].name, metas[m].content,)

    Ce qui donne en WLangage:
    Code WLangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    sHTML est une chaîne = [
    <html>
    	<header>
    		<title>A title</title>
    		<meta name='a name' content='page description'>
    		<meta name="description" content="MSHTML sample with Automation">
    		<meta name="keywords" content="HTML,DOM,MSHTML">
    	<body>
    		This is some of it.
    		<span>And this is the rest.</span>
    	</body>
    </html>
    ]
     
    oHTMLFile est un objet Automation "htmlfile"	// the disguise for MSHTML as a COM server
    oMetas est un objet Automation dynamique
    i est un entier
     
    oHTMLFile>>write(sHTML)
     
    Trace("Title:", oHTMLFile>>title)
    Trace("InnerText:",oHTMLFile>>body>>innerText)
    Trace("URL:", oHTMLFile>>url)
    Trace("Metatags <[index] name: content>")
     
    oMetas = oHTMLFile>>getElementsByTagName("meta")
     
    POUR i = 0 _A_ oMetas>>length - 1
    	Trace("["+i+"] "+oMetas>>item(i)>>name +": "+oMetas>>item(i)>>content)
    FIN

    Affichage de la trace:
    Title: A title
    InnerText: This is some of it. And this is the rest.
    URL: about:blank
    Metatags <[index] name: content>
    [0] a name: page description
    [1] description: MSHTML sample with Automation
    [2] keywords: HTML,DOM,MSHTML
    De bonnes choses en perspective !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour,

    Encore une réflexion sur la capacité du WLangage à répondre au besoin.

    Si le fichier HTML est en fait du XHTML, alors les fonctions XML du WLangage sont suffisantes pour le manipuler.
    Pour savoir la convention utilisée dans le fichier HTML, il suffit de lire sa première ligne qui est le DOCTYPE.
    Si le DOCTYPE fait mention de XHTML, alors ça roule.

    Pour le XHTML, dans la fonction XMLDocument il faut préciser l'option xdHTML.
    http://doc.pcsoft.fr/fr-FR/?3081008


Discussions similaires

  1. Réponses: 3
    Dernier message: 16/07/2013, 17h57
  2. Lire les lignes d'un fichier avec csh
    Par nicolas581 dans le forum Linux
    Réponses: 4
    Dernier message: 24/03/2010, 16h38
  3. Edition des accents sur un fichier html pour renvoi sur flash
    Par gordan66 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/12/2009, 13h56
  4. Réponses: 15
    Dernier message: 29/07/2009, 13h33
  5. Comment lire les lignes d'une Jtable
    Par d_hazem dans le forum Débuter
    Réponses: 2
    Dernier message: 25/05/2008, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo