Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème de code java

5 réponses
Avatar
nabil kasmi
Bonjour,
j'ai un petit soucis a résoudre en java.

Mon souhait serait de récupérer un string compris entre 2 balise :
<td><small>"String"</small>
ce que j'arrive à faire avec cette methode :
******************************************
méthode travaillant dans un contenu(mon code source java)
******************************************
private String getOrigin(String content){
int offset=0;
String encodingString=null;
if(content.length()!=0){
offset=content.indexOf("<td><small>");
encodingString=content.substring(offset+11, content.length());
offset=encodingString.indexOf("</small>");
encodingString=encodingString.substring(0, offset);
System.out.println(encodingString);
return encodingString;

}
return null;
}
******************************************
<td><small>Inter./TN<small>
<td><small>National<small>


Le problème c'est que je récupere que le premier.Je voudrais savoir comment
il faudrait que je m'y prenne pour récupérer la 2éme ligne ainsi de suite
jusqu'à la fin de la page.

Merci D'avance.Bonne Après midi.
Nabil

5 réponses

Avatar
Raphael Tagliani
Regardez la classe StringTokenizer.
nextToken() passe à la prochaine occurence.

nabil kasmi wrote:
Bonjour,
j'ai un petit soucis a résoudre en java.

Mon souhait serait de récupérer un string compris entre 2 balise :
<td><small>"String"</small>
ce que j'arrive à faire avec cette methode :
******************************************
méthode travaillant dans un contenu(mon code source java)
******************************************
private String getOrigin(String content){
int offset=0;
String encodingString=null;
if(content.length()!=0){
offset=content.indexOf("<td><small>");
encodingString=content.substring(offset+11, content.length());
offset=encodingString.indexOf("</small>");
encodingString=encodingString.substring(0, offset);
System.out.println(encodingString);
return encodingString;

}
return null;
}
******************************************
<td><small>Inter./TN<small>
<td><small>National<small>


Le problème c'est que je récupere que le premier.Je voudrais savoir comment
il faudrait que je m'y prenne pour récupérer la 2éme ligne ainsi de suite
jusqu'à la fin de la page.

Merci D'avance.Bonne Après midi.
Nabil






Avatar
nabil kasmi
Merci du renseignement mais vous pensez que ça marche avec les balises html
car moi je veux récupérer que le contenu entre ces 2 balises.


"Raphael Tagliani" a écrit dans le message de
news:
Regardez la classe StringTokenizer.
nextToken() passe à la prochaine occurence.

nabil kasmi wrote:
Bonjour,
j'ai un petit soucis a résoudre en java.

Mon souhait serait de récupérer un string compris entre 2 balise :
<td><small>"String"</small>
ce que j'arrive à faire avec cette methode :
******************************************
méthode travaillant dans un contenu(mon code source java)
******************************************
private String getOrigin(String content){
int offset=0;
String encodingString=null;
if(content.length()!=0){
offset=content.indexOf("<td><small>");
encodingString=content.substring(offset+11, content.length());
offset=encodingString.indexOf("</small>");
encodingString=encodingString.substring(0, offset);
System.out.println(encodingString);
return encodingString;

}
return null;
}
******************************************
<td><small>Inter./TN<small>
<td><small>National<small>


Le problème c'est que je récupere que le premier.Je voudrais savoir
comment


il faudrait que je m'y prenne pour récupérer la 2éme ligne ainsi de
suite


jusqu'à la fin de la page.

Merci D'avance.Bonne Après midi.
Nabil








Avatar
Insitu
"nabil kasmi" writes:

Merci du renseignement mais vous pensez que ça marche avec les balises html
car moi je veux récupérer que le contenu entre ces 2 balises.


Bonjour,
java.util.regex pourrait etre utile:

Pattern p = Pattern.compile("<small>(.*)</small>");
Matcher m = p.matcher(content);
while(m.find()) {
String data = m.group(1);
....
}

ou a peu près...

insitu.

Avatar
Raphael Tagliani
nabil kasmi wrote:
Merci du renseignement mais vous pensez que ça marche avec les balises html
car moi je veux récupérer que le contenu entre ces 2 balises.

Oui, puisque les balises html ne sont que du texte après tout.

Si vous voulez faire un traitement plus complexe, cherchez un parseur de
HTML.
http://java-source.net/open-source/html-parsers
http://java.sun.com/products/jfc/tsc/articles/bookmarks/index.html
Mais pour ce que vous voulez faire, StringTokenizer devrait être
amplement suffisant.


"Raphael Tagliani" a écrit dans le message de
news:

Regardez la classe StringTokenizer.
nextToken() passe à la prochaine occurence.

nabil kasmi wrote:

Bonjour,
j'ai un petit soucis a résoudre en java.

Mon souhait serait de récupérer un string compris entre 2 balise :
<td><small>"String"</small>
ce que j'arrive à faire avec cette methode :
******************************************
méthode travaillant dans un contenu(mon code source java)
******************************************
private String getOrigin(String content){
int offset=0;
String encodingString=null;
if(content.length()!=0){
offset=content.indexOf("<td><small>");
encodingString=content.substring(offset+11, content.length());
offset=encodingString.indexOf("</small>");
encodingString=encodingString.substring(0, offset);
System.out.println(encodingString);
return encodingString;

}
return null;
}
******************************************
<td><small>Inter./TN<small>
<td><small>National<small>


Le problème c'est que je récupere que le premier.Je voudrais savoir



comment

il faudrait que je m'y prenne pour récupérer la 2éme ligne ainsi de



suite

jusqu'à la fin de la page.

Merci D'avance.Bonne Après midi.
Nabil













Avatar
Insitu
"nabil kasmi" writes:

J'ai bien réussi à les récupérer, maintenant je voudrais les insérer dans un
tableaux afin de pouvoir les utiliser.


Pattern p = Pattern.compile("<small>(.*)</small>");
Matcher m = p.matcher(content);
List<String> l = new ArrayList<String>()
while(m.find())
l.add(m.group(1));
String[] datas = l.toArray(new String[l.size()]);

insitu.