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

Composants Java Discussion :

Récupérer le contenu HTML d'un JTextPane


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut Récupérer le contenu HTML d'un JTextPane
    Bonjour à tous,

    j'utilise le code suivant pour remplir un JTextPane à partir d'une page HTML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    JTextPane zoneTexte = new JTextPane();
    zoneTexte.setContentType("text/html");
    try{
    	zoneTexte.setPage( "file:"+EnrichissementApplet.textPath );
    }catch(IOException ioe){}
     
    System.out.println(zoneTexte.getText());
    Je récupère bien le contenu de mon HTML dans le JTextPane.
    Je voudrais récupérer le texte dans une variable pour ensuite faire des traitements dessus.

    La méthode getText() me renvoi :

    <html>
    <head>

    </head>
    <body>
    <p style="margin-top: 0">

    </p>
    </body>
    </html>
    Sachant que mon fichier HTML ne contient aucunement ces lignes...
    Quelle méthode dois-je utiliser pour récupérer le contenu de mon JTextPane ?

    J'imagine que c'est getText() mais que la façon de remplir le JTextPane que j'ai utilisée n'est pas bonne ?

    Une idée ? Merci d'avance.
    Cordialement, Bastien.

    EDIT: Je pense qu'il faut utiliser setDocument() au lieu de setPage() mais je ne trouve pas de documentation détaillée sur comment récupérer une page HTML sous forme de document...

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    J'ai réussi, effectivement il s'agissait de la méthode setPage( ) qui ne remplissait pas le JTextPane, c'est juste de l'affichage.

    Voici le code :
    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
    zoneTexte = new JTextPane();
    zoneTexte.setContentType("text/html");
    try{
    	URL url = new URL( "file:" + EnrichissementApplet.textPath );
     
    	InputStreamReader ipsr = new InputStreamReader( url.openStream( ) );
    	BufferedReader br = new BufferedReader( ipsr );
    	String line = null;
    	StringBuffer buffer = new StringBuffer();
    	while( ( line = br.readLine( ) ) != null ) {
    		buffer.append( line );
    	}
    	br.close( );
     
    	zoneTexte.setText( buffer.toString( ) );
    }
    catch( MalformedURLException mue ){ mue.printStackTrace( ); }
    catch( IOException e ) { e.printStackTrace( );	}
    Maintenant je peux utiliser getText( ) sans problème.

    Mais je tombe sur un autre soucis...
    Voici un exemple de ce que me retourne getText( ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <body>
        Nous sommes sur le parvis de challenger.*<br>Reste <b>observateur 
        devant le camion</b> Brings.*<br>Le soleil brille. Les alouettes font 
        le printemps. Et Xavier joue les marteaux-piqueurs.*<br><br>Test de 
        reconnaissance vocale texte lue par Gildas virait. Accès à maintenir en 
        activité parking à maint
    Tous les caractères spéciaux sont transformés en & # X X X ;
    Si j'affiche le StringBuffer, j'ai bien les spéciaux... Y a t-il moyen que cela ne se produise pas ? Ou faut-il que je gère tous les cas ? ( & # 2 2 3 ; = é ) ...

    Merci encore.
    Cdlt, Bastien

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 88
    Par défaut
    J'ai trouvé la solution au problème de caractères spéciaux.

    Il faut passer par getStyledDocument( ).getText( ) au lieu de getText( ) tout seul.

    En plus ça tronque les tags HTML !

    EDIT: Mais ca ne résout pas le problème si je veux garder les tags HTML ...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 18
    Par défaut
    Bonjour,

    j'ai plus ou moins le même problème que celui cité précédemment :

    Mon but est de lire une page HTML situé sur un serveur depuis un browser. (Le serveur et le browser ont été créé manuellement).

    J'ai tout d'abord utilisé la méthode setPage dans mon JEditorPane mais le browser ne l'interprète pas.

    Voici la méthode dans mon browser qui lit la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void showPage(String location)
    	{
    		contents.setContentType("text/html") ;
     
    		try{
    			contents.setPage(location) ;
    		}
    		catch( MalformedURLException mue ){ mue.printStackTrace( ); }
    		catch( IOException e ) { e.printStackTrace( );	}
    	}
    * la variable location contient l'url de mon site soit "http://192.168.108.10:8081"

    Voici ce qui s'affiche ensuite dans mon JEditorPane :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Exercice 1 - 06 WebClient</title>
    </head>
    <table border="1" bgcolor="red">
    <tr>
    <td>salut</td>
    <td>ça</td>
    <td><a href="test.html">va</a></td>
    </tr>
    </table>
    <body>
    </body>
    </html>
    J'ai ensuite modifié ma méthode comme indiqué si dessous afin que mon browser interprète le code HTML :

    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
    private void showPage(String location)
    	{
    		contents.setContentType("text/html") ;
     
    		try{
    			URL url = new URL(location);
     
    			InputStreamReader ipsr = new InputStreamReader(url.openStream());
    			BufferedReader br = new BufferedReader(ipsr);
    			String line = null;
    			StringBuffer buffer = new StringBuffer();
    			while((line = br.readLine()) != null) {
    				buffer.append(line);
    			}
    			br.close();
    			contents.setText(buffer.toString());
    		}
    		catch( MalformedURLException mue ){ mue.printStackTrace( ); }
    		catch( IOException e ) { e.printStackTrace( );	}
    	}
    Et là, le JEditorPane ne me retourne rien du tout... J'ai beau essayer plusieurs modifications, rien ne fonctionne...

    Est-ce que quelqu'un aurait une idée du problème ?

    Merci beaucoup ;-)

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

Discussions similaires

  1. Récupération du contenu HTML d'un JTextPane
    Par bomehc dans le forum Composants
    Réponses: 8
    Dernier message: 22/12/2011, 11h21
  2. [Système] Récupérer le contenu HTML d'une page Web
    Par zah.hicham dans le forum Langage
    Réponses: 7
    Dernier message: 13/02/2008, 03h53
  3. [Tableaux] Récupérer le contenu d'une balise HTML
    Par StarNab dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2006, 12h38
  4. [Word] Récupérer le contenu d'un doc Word (text/image) -> sauvegarder en HTML
    Par budylove dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/05/2006, 15h51
  5. [JTextPane] Afficher et récupérer de l'HTML
    Par tchoukapi dans le forum Composants
    Réponses: 6
    Dernier message: 02/09/2005, 12h13

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