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

Java Discussion :

Identifier élément HTMLDocument


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut Identifier élément HTMLDocument
    Bonjour bonjour,

    Je galère sur un problème tout bête, mais pourtant je n'arrive pas à trouver de solution :

    J'ai une String htmlString contenant du code html
    J'ai un HTMLDocument htmldoc

    Je veux remplir mon htmlDoc avec le contenu du htmlString, puis remplacer les balises <mathML ...> </mathML> et leur contenu par un JComponent.

    2 solutions :
    - soit j'intervient sur la htmlString, mais dans ce cas je ne sais pas à quel offset insérer mon JComponent dans le htmlDoc par la suite.

    - soit j'intervient directement dans le htmlDoc, mais je ne vois pas comment identifier ces balises ou l'Element associé et les remplacer par mon JComponent. Je n'ai pas l'id des éléments.

    Merci de votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    Bon, je vais aborder le problème différemment :

    - Est-ce que quelqu'un sait comment obtenir le charactère associé à un Element (en grois, si je fais htmlDoc.getCharacterElement(i), comment je peux savoir de quel charactère il s'agit).

    - Est-ce que vous savez comment je peux faire une copie conforme d'un HTMLDocument ?

    Merci

  3. #3
    Membre très actif
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Par défaut
    Si ça peut te mettre un peu sur la voie ?

    Obtenu sur goggle :
    Vous obtenez une instance de HtmlDocument via la propriété Document du contrôle WebBrowser.
    Exemple en C# :
    Code : 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
     
    private void Form1_Load(object sender, EventArgs e)
    {
        webBrowser1.DocumentText =
            "<html><body>Please enter your name:<br/>" +
            "<input type='text' name='userName'/><br/>" +
            "<a href='http://www.microsoft.com'>continue</a>" +
            "</body></html>";
        webBrowser1.Navigating += 
            new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
    }
     
    private void webBrowser1_Navigating(object sender, 
        WebBrowserNavigatingEventArgs e)
    {
        System.Windows.Forms.HtmlDocument document =
            this.webBrowser1.Document;
     
        if (document != null && document.All["userName"] != null && 
            String.IsNullOrEmpty(
            document.All["userName"].GetAttribute("value")))
        {
            e.Cancel = true;
            System.Windows.Forms.MessageBox.Show(
                "You must enter your name before you can navigate to " +
                e.Url.ToString());
        }
    }
    Exemple en VB :
    Code : 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
     
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
        Handles Me.Load
     
        webBrowser1.DocumentText = _
            "<html><body>Please enter your name:<br/>" & _
            "<input type='text' name='userName'/><br/>" & _
            "<a href='http://www.microsoft.com'>continue</a>" & _
            "</body></html>"
     
    End Sub
     
    Private Sub webBrowser1_Navigating( _
        ByVal sender As Object, ByVal e As WebBrowserNavigatingEventArgs) _
        Handles webBrowser1.Navigating
     
        Dim document As System.Windows.Forms.HtmlDocument = _
            webBrowser1.Document
        If document IsNot Nothing And _
            document.All("userName") IsNot Nothing And _
            String.IsNullOrEmpty( _
            document.All("userName").GetAttribute("value")) Then
     
            e.Cancel = True
            MsgBox("You must enter your name before you can navigate to " & _
                e.Url.ToString())
        End If
     
    End Sub

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    Merci dragonno.

    Malheureusement, j'aurai du préciser le contexte dans ma question.

    Je travaille sur un logiciel local qui propose un traitement de texte HTML via un JTextPane auquel est attaché un HTMLDocument. Je ne crois pas pouvoir utiliser ton exemple dans ce contexte.

  5. #5
    Membre très actif
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Par défaut
    Désolé :/

    Peut-être que le premier post de ce topic te donnera une idée ?

    Extrait :
    Je réalise un projet en JAVA, pour cela je dois d'abord récupérer des information à partir du web. J'ai pu réaliser la connexion avec la page web et récupérer les code source HTML dans un objet BufferReader. Et cela fonctionne bien.
    http://www.developpez.net/forums/d13...age-html-java/

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    Merci pour ton aide. Malheureusement ce n'est toujours pas ce que je cherche.

    Je m'aperçois que ce qui serait idéal finalement, ce serait de pouvoir cloner le HTMLDocument. Sauf que je n'ai pas trouvé de moyen pour le faire correctement.

    - clone() n'existe pas pour cet objet
    - j'ai pensé à extraire le html et recréer un htmldoc à partir de ça, mais le résultat n'est pas exactement identique
    - HTMLEditorKit ne propose rien non plus.

    Des idées ?

Discussions similaires

  1. identifier l'élément qui a reçu le clic
    Par sebac dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 29/03/2010, 11h36
  2. Réponses: 2
    Dernier message: 17/01/2010, 15h29
  3. [AC-2002] Identifier éléments impactés
    Par Zopla dans le forum Modélisation
    Réponses: 1
    Dernier message: 12/01/2010, 18h48
  4. Réponses: 9
    Dernier message: 08/12/2009, 18h26
  5. Identifier l'élément courant actif ?
    Par agoubi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/08/2007, 16h12

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