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

Windows Forms Discussion :

webbrowser obtenir un texte entre un tag


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Points : 7
    Points
    7
    Par défaut webbrowser obtenir un texte entre un tag
    bonjour,
    je souhaiterais obtenir via webbrowser, le contenu d'un tag d'une page html.
    par exemple dans ma page j'ai : <h1>text</h1>
    je souhaiterais obtenir "text"
    j'ai essayé pas mal de choses, mais j'obtient "La référence d'objet n'est pas définie à une instance d'un objet."
    et voici mon petit bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1.Label3.Text = WebBrowser1.Document.GetElementById("h1").GetAttribute("value")
    bien entendu je ne sais pas du tout si ce que j'ai fais est bon..
    merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    GetElementById renvoie un élément avec l'attribut ID spécifié. Or "h1" n'est pas l'ID de l'élément, juste le nom du tag...
    Il faudrait que ta balise <h1> ait un attribut ID :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <h1 id="idDeLElement">text</h1>
    D'autre part, "text" n'est pas un attribut de <h1>, c'est son InnerText.

    Au final ton code devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1.Label3.Text = WebBrowser1.Document.GetElementById("idDeLElement").InnerText
    Par contre, si tu n'as pas la main sur le contenu du HTML et que tu ne peux pas ajouter l'ID sur la balise <h1>, il faut parcourir récursivement les éléments jusqu'à en trouver un dont le Name est "h1"

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    ok merci je comprend un peu mieux..
    malheureusement comme tu l'as dit je n'ai pas accès au code, et il n'y a pas de id.
    pourrais tu me dire comment je peux parcourir des éléments ?
    merci bien

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Lubovic Voir le message
    malheureusement comme tu l'as dit je n'ai pas accès au code, et il n'y a pas de id.
    pourrais tu me dire comment je peux parcourir des éléments ?
    Citation Envoyé par tomlev Voir le message
    il faut parcourir récursivement les éléments jusqu'à en trouver un dont le Name est "h1"

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    salut,
    oui j'avais bien vu que tu me disais de faire ainsi
    seulement je ne sais comment faire, et c'est ce que je demandais plus haut : comment faire ?
    je ne connais que streamreader mais comment l'appliquer à ça ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Lubovic Voir le message
    je ne connais que streamreader mais comment l'appliquer à ça ?
    Pourquoi voudrais-tu utiliser un StreamReader ? C'est pas vraiment adapté...

    Il faut chercher dans les éléments du document HTML via la propriété Document du WebBrowser. Par exemple le code suivant récupère le contenu du premier élément <h1> rencontré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Function GetH1() As String
        Dim elements As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("H1")
        If elements.Count > 0 Then
            Return elements(0).InnerText
        Else
            Return Nothing
        End If
    End Function

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    merci beaucoup, tu es un as

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Supprimer du texte entre deux balises ou tags
    Par renaud26 dans le forum Langage
    Réponses: 8
    Dernier message: 10/12/2010, 14h51
  2. Extraction texte entre 2 tags
    Par donlefou dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/06/2007, 18h47
  3. [SAX] Problème SAX lecture du texte entre les balises
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 07/07/2005, 17h24
  4. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34
  5. Agir sur le texte entré dans un éditeur
    Par FatalError dans le forum C++
    Réponses: 1
    Dernier message: 24/10/2004, 14h54

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