[JAVA] suppression des balises HTML

bonjour, je mets à votre disposition un code java pour supprimer toutes les balises html d'1 fichier passé en parametres pour sauvegarder les données dans un fichier .txt

public void supprimerBalises(String adresse){ // nettoyer le fichier html de toutes ses balises afin de trouver facilement les données

String adresse2="C:\\monfichier.txt";

int flot=0;

try{
FileReader flotLecture = new FileReader(adresse);
FileWriter fw = new FileWriter(adresse2,true);
BufferedWriter output = new BufferedWriter(fw);

flot=flotLecture.read(); //on lit le flot. si flot =-1 fin du fichier
char car=(char)flot;
char lu=(char)flot;

while(flot!=-1){ // TQ pas fin du fichier

if(car=='<') //pour reperer le début balises
{
while(lu!='>'){ //TQ pas à la fin de la balise
flot = flotLecture.read();
lu=(char)flot;
}
flot = flotLecture.read(); //on lit le carcater suivant car ici on était toujours sur le caractère "<"
lu=(char)flot;
car=lu;

}
else{ // si on n'est pas dans une balise

lu=(char)flot;
output.write(lu); //on écrit dans le buffer
flot=flotLecture.read(); //on lit le caracter suivant puis on reboucle si on n'est pas en fin de fichier
car=(char)flot;
}

}// while(flot!=-1)

output.flush(); //on envoie le buffer dans le fichier de destination ici:"C:\\monfichier.txt"
output.close(); //on ferme le buffer et le filereader flotlecture
flotLecture.close();
}catch (IOException e) {
System.out.println(" erreur :" + e.toString());
}

}// supprimerBalises

3 réponses

  1. Bonjour,

    C'est bourrin, quand même, comme façon de faire !
    Imagine que dans ta page, tu aies des maths... Je sais bien que les signes < et > sont, alors, censés être écrits & lt; et & gt; (j'ai mis des espaces pour que ce e soit pas interprété), mais ce n'est pas toujours, voire pas souvent le cas !
    Donc, si la page contient, par exemple,
    <div>Ce qui nous donne l'inéquation <span class="formule">x < 3y+1</span></div>
    , ta méthode donnera
    Ce qui nous donne l'inéquation x 
    au lieu de
    Ce qui nous donne l'inéquation x < 3y+1
    Je pense que la meilleure solution à ce problème serait plutôt de rechercher les balises existantes, elles ne sont pas si courantes que ça... Mais forcément, du coup, ça marche moins bien sur les fichiers XML.

    Xavier
    1. ce a5cools j'ai vraiment un probleme de referencement d'une image sur de moteur de recherche tels que google , etc....
      que ce lui qui sait bien pour m'aider qu'il m'ecrive sur : a5cools@yahoo.fr
      1. Merci,
        Il est bien ton code ;-)) Mais pour nettoyer un fichier html, faut aussi supprimer ceux qui sont dans les balises head, et script.
        Et puis quand on a <br> faudrait le remplacer par \n par exemple.
        N'empêche, ton code donne de bonnes idées.
        ;-)))