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

API standards et tierces Java Discussion :

Récuperer la valeur d'une balise html


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 119
    Points : 58
    Points
    58
    Par défaut Récuperer la valeur d'une balise html
    Bonjour,

    je voudrais savoir comment récupérer la valeur d'une balise html à l'intérieur d'un JLabel??

    voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    JLabel tutu = new JLabel("<html><body><form><input type=\"text\" named=\"toto\" value=\"1234\" maxlength=\"5\" size=\"5\"></form></body></html>");
     
    monPanel.add(tutu);
    peut on récuperer la valeur 1234 ??

  2. #2
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    Salut, essaye ca :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    JLabel tutu = new JLabel("<html><body><form><input type=\"text\" name=\"toto\" value=\"1234\" maxlength=\"5\" size=\"5\"></form></body></html>");
     
    monPanel.add(tutu);
     
    String texte = tutu.getText(),
    		resultat[][];
    int longueurTexte = texte.length(),
    	ligne = 0;
    for(int i=0;i<longueurTexte;i++){
    	try{
    		if(texte.charAt(i)+texte.charAt(i+1)
    		+texte.charAt(i+2)+texte.charAt(i+3)
    		+texte.charAt(i+4)+texte.charAt(i+5)=="<input")ligne++;
    	}catch(Exception e){}
    }
    resultat=new String [ligne][2];
    for(int i=0;i<ligne;i++)
    	for(int j=0;j<2;j++) resultat[i][j]="";
    ligne=0;
    for(int i=0;i<longueurTexte;i++){
    	try{
    		if(texte.charAt(i)+texte.charAt(i+1)
    		+texte.charAt(i+2)+texte.charAt(i+3)
    		+texte.charAt(i+4)+texte.charAt(i+5)=="<input"){
    			int j=i+;
    			while(texte.charAt(j)!='>') j++;
    			String input = texte.substring(i,j);
    			int tailleInput = input.length();
    			for(int k=tailleInput.toUpperCase().indexOf("NAME=\"");j<tailleInput;k++)
    							if(tailleInput.charAt(k)!='"') resultat[ligne][0]+=tailleInput.charAt(k);
    				else j=tailleInput;
    			for(int k=tailleInput.toUpperCase().indexOf("VALUE=\"");j<tailleInput;k++)
    				if(tailleInput.charAt(k)!='"') resultat[ligne][1]+=tailleInput.charAt(k);
    				else j=tailleInput;
    			ligne++;
    		}
    	}catch(Exception e){}
    }
    Je n'ai pas tester donc je ne sais pas si j'ai fait une erreur. Mais normalement le tableau résultat varie en fonction du nombre de <input ...
    dans la colone resultat[numeroInput][0] (la colone 0) vaut la valeur de name="" et la colone resultat[numeroInput][1] (la colone 1) vaut la valeur de value=""

  3. #3
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Il doit y avoir moyen de faire plus simple avec les expressions régulières mais voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    StringTokenizer st1=new StringTokeenizer(tutu.getText());
    List<String> liste=new ArrayList<String>();
    while(st1.hasMoreTokens()){
       StringTokenizer st2=new StringTokenizer(st1.nextToken(),"=");
       if(st2.countTokens()==2){
          if(st2.nextToken().equals("value")){
             liste.add(st2.nextToken());
          }
       }
    }
    Ce code récupérera toutes les valeurs de "value" et les placera dans "liste".
    Remarque 1 : les valeurs seront de type "1234" avec les guillemets. Ci ses derniers te gènent, il est très simple de les enlever par la suite.
    Remarque 2 : ce code n'est pas très universel pour l'html ( espaces entre balises etc. ), si tu sais exactement quelle(s) balise(s) il te faut ( "value" dans ton exemple ), il serait peut-être plus judicieux d'effectuer la récupération avec les méthodes indexOf(), substring() etc. de la classe String.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/05/2015, 17h20
  2. Comment récupérer une valeur dans une balise html?
    Par skandaboy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2011, 14h38
  3. récuperer la valeur d'une balise XML
    Par jeromelabbe64 dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 04/02/2010, 17h30
  4. Changer la valeur d'une balise html
    Par fafoula dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/08/2008, 10h17
  5. [XSLT]introduire la valeur d'un noeud dans une balise html
    Par delma dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/10/2006, 22h08

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