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 :

Modifier un HTML


Sujet :

Java

  1. #1
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut Modifier un HTML
    Bonjour tout le monde,

    Je galéré toute la journée pour résoudre un problème mais sans aucun résultat. En effet j'ai envi de créer une fonction en JAVA qui peut modifier le contenu d'un fichier HTML.

    En fait j'ai des centaines de fichiers HTML qui contiennent tous un attribut class="COLLAPSED" et j'ai envie de mettre à la place class="EXPANDED".

    J'ai cherché pendant des heures une méthode mais sans aucun résultat convainquant, j'ai testé plusieurs parser HTML, puis je suis passé au XSL puis de la lecture de fichier normal mais sans résultalt.

    Si vous avez une idée je suis preneur.

    Merci beaucoup par avance.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pourquoi vouloir utiliser java pour ça? Des outils comme sed sont beaucoup plus adaptés:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed -i 's/class="COLLAPSED"/class="EXPANDED"/g' nomDuFichier.html
    C'est personnellement ce que je fait quand j'ai des remplacement de masse à faire dans mes sources

  3. #3
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut
    Salut tchize_

    Merci bcp pour la réponse, elle est parfaite pour mon cas.
    Ceci dit j'ai un petit soucis, voilà la commande que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i 0,/class=COL/s//class=EXP/ "test.htm"
    En effet elle va remplacer la première occurrence de "class=COL" avec "class=EXP".
    Le problème c'est que je me retrouve avec un fichier HTML en chinois oui tu as bien entendu, en chinois

    Je ne suis pas sûr mais je pense qu' il s'agit d'un problème d'encodage, voici l'entête de mon HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <META http-equiv=Content-Type content="text/html; charset=unicode">
    Merci par avance.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    charset "unicode" ca ne veux rien dire. Précisez le charset (utf-8, utf-16, utf-32, .....)

    PS: j'ai du mal à comprendre votre commande sed là Mais sed est tellement tordu qu'elle doit surement vouloir dire quelque chose

  5. #5
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut
    Merci pour la réponse,

    Oui en effet la commande est assez tordue , mais elle marche ,sauf sur mon fichier

    J'ai modifié le charset (j'ai mis utf-32 puis utf-16 ...) mais malgré cela, dès que je lance ma commande SED le fichier devient du chinois.

    Remarque, si je crée un fichier en bloc notes et je fais un copier coller de la source de mon html, ma commande SED le transforme impeccablement. C'est vraiment bizarre tout ça.

    Sinon pour que tu saches, mon fichier HTML a été généré par le logiciel BackUp Exec !! Si ça peut aider

    Vraiment je suis perdu.
    A l'aiiiiiiiiiiiiiiiiiiiiiiiiiiide
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pourriez vous attacher le fichier avant/après?

  7. #7
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut
    Voilà les deux fichiers !!
    Merci beaucoup.
    Fichiers attachés Fichiers attachés
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  8. #8
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut
    Bonjour tout le monde,

    Je galère toujours sur ce problème.
    Si vous avez une idée n'hésitez pas !!

    Merci beaucoup.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tes fichiers sont en UTF-16, mais SED les a traités comme de l'UTF-8 ou de l'ascii (va savoir).

    Position hexadécimale 93: on a

    0x00 0x0D 0x00 0x0A 0x00 0X3C

    après passage dans sed, on a
    0x00 0x0D 0x00 0x0D 0x0A 0x00 0X3C

    Problème, ca veux dire que tout le reste des bytes est décalé d'un bit. Tu passe ainsi d'un plan unicode bas (0x00 0x??) où on trouve les caractères européen, à des plans haut (0x?? 0x00) où l'on trouve du chinois, du coréen, etc.

    Dans ton cas, sed a remplacé tous les 0x0A (LF, retour ligne standard) en CR LF (retour ligne windows).

    a noter que les version windows de sed, pour beaucoup ont ce problème:
    De la lecture intéressante: http://www.pement.org/sed/unicode1.txt

    PS: utiliser de l'UTF-16 pour des pages non asiatiques est souvent une perte d'espace par rapport à l'utf-8. Seul les hauts plans bénéficient de l'utilisation de l'UTF-16, c'est à dire les plans qui auraient besoin de 3 bytes en UTF-8.

  10. #10
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut
    Merci pour ta réponse tchiz__

    J'ai lu le petit article que tu as posté, apparemment il s'agit d'un problème récurrent, j'ai essayé pas mal de version de "SED" même celle qui marche dans l'article "unxutils" mais toujours pas résolu mon problème.

    Je ne sais pas si tu es arrivé à le résoudre de ton côté, ou si tu peux me guider vers une éventuelle solution, en tout cas merci beaucoup.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  11. #11
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    convertir le fichier en utf-8 avant, me semble la solution la plus simple

  12. #12
    Membre Expert
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Par défaut
    Salut tout le monde,

    Enfin je suis arrivé au bout de mes peines

    J'ai utilisé iconv pour convertir mon fichier de utf-16 en utf-8
    suivez ce lien : http://docs.moodle.org/fr/Conversion...hiers_en_UTF-8 ( personnellement j'ai choisis la solution 2 )

    Puis j'ai utilisé SED ( comme en haut ) pour faire la modification dans mon fichier.

    Puis après j'ai intégré tout ça dans un code JAVA ( pour les personnes qui se demandent que fait toujours ce poste sur ce forum ) qui parcours un dossier, et sélectionne les fichiers .htm et leurs applique le iconv puis le sed.

    Merci encore pour tes réponses tchize_, ils m'ont été d'une grande aide.

    Un bon et mérité s'impose
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

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

Discussions similaires

  1. Aide pour modifier un HTML
    Par bigfoot75 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 18/11/2008, 13h24
  2. Modifier fichier HTML
    Par luckan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/06/2007, 11h11
  3. modifier dynamiquement HTML
    Par oussam dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/05/2006, 22h02

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