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

Format d'échange (XML, JSON...) Java Discussion :

XMLOutputter qui supprime les passage a la lignes mais pas les tags uniquement blanc


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut XMLOutputter qui supprime les passage a la lignes mais pas les tags uniquement blanc
    Bonjour

    Est il possible avec JDOM d'avoir un XMLOUTPUTTER qui supprime les passages à la ligne, mais pas les tags avec des valeurs uniquement composé du caractère espace ?

    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    L'espace (ou plus généralement le whitespace, donc l'espace mais aussi le passage à la ligne, entre autres), n'a pas de signification en xml : il doit être ignoré. Donc, il n'est pas possible d'avoir un XMLOutputter qui traiterait de façon différentes les whitespace hors tags et ceux dans le contenu des tags.

    Toutefois, lorsqu'on a besoin d'avoir des whitespaces dans le contenu des tags en xml, on peut utilises des section CDATA : tous les caractères s'y trouvant sont conservés lors de la sérialisation, quelque soit le paramétrage sur le traitement des whitespaces du XMLOutputter.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    L'espace (ou plus généralement le whitespace, donc l'espace mais aussi le passage à la ligne, entre autres), n'a pas de signification en xml : il doit être ignoré.
    Pas du tout. Les whitespaces sont souvent ignorés, et pour refléter cet usage il y a de nombreuses règles autorisant les outils XML à les ignorer ou réagencer sauf indication contraire, mais les ignorer n'est pas une obligation et peut être incorrect.
    Les CDATA, ou l'usage de xml:space="preserve", imposent la conservation des whitespaces, ce qui en fait donc des moyens fiables de résoudre le problème. Mais, ils ne changent pas leur sens.

    Quand j'ai besoin de faire quelque chose de ce genre, je commence par mettre du xml:space="preserve" sur tous les éléments sur lesquels je veux garder des espaces, et c'est ça que je passe au XMLOutputter. Puis, si je veux enlever les xml:space, je recharge le résultat dans un Document, j'enlève les xml:space, et je repasse par un XMLOutputter au format raw. Cette double-passe n'est pas très efficace en temps et en mémoire, mais elle est facile.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ah, oui, tu as raison, j'ai fait une confusion avec le html.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Même en HTML, pas oublier le CSS white-space: pre;
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    J'ai un peu plus de mal à considérer que CSS fait partie de HTML : pour moi, CSS concerne la présentation, mais si je parse du html avec un jsoup ou autre parser html en java, le white-space: pre sera pris en compte ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    En principe il ne sera pas pris en compte, ce qui n'empêche pas qu'il est là et bien là pour dire que les espaces ne doivent pas être ignorés. Par conséquent, il faut être capable de considérer que les espaces ne sont ignorables que dans certaines conditions, que l'on ne peut pas connaître. Et donc, avoir un moyen de ne jamais les ignorer.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut
    Bonjour

    byte[] xx
    document = sxb.build(new StringReader(new String(xx).replaceAll("\r\n", "")));

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    De une, la demande concerne un XMLOutputter.
    De deux, je pense que l'idée est de transformer ça :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a>
      <b>   </b>
    </a>
    en ça :

    Mais bon, sait-on jamais.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut
    Bonjour

    Oui ta derniere remarque est juste, comme par XmlOutputter je ne vois pas la solution j'en cherche une autre pour JDOM

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Bon, mais ça fait ce que tu veux, ton replaceAll() ? Parce que je vois pas trop l'intérêt de virer uniquement les passages à la ligne.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut
    Bonjour

    Dans jdom, j'utilise des indexOf pour situé des élements, car je dois inserer des elements à des endroits précis.
    Je dois supprimer les sauts de lignes, car les indexOf ne fonctionne pas sinon, mais les blancs sont une volonté du client, et donc je ne peut pas y toucher, et meme ne doit pas. Je recois du > <, et je dois retransmettre les blancs tel que.

    Merci

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

Discussions similaires

  1. Un regex qui fonctionne sur les testeurs en ligne, mais pas dans mon code
    Par billybobbonnet dans le forum Développement Windows
    Réponses: 4
    Dernier message: 28/01/2015, 17h20
  2. Réponses: 2
    Dernier message: 17/05/2014, 12h44
  3. Requête INSERT mais pas les lignes qui existent
    Par zoom61 dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/01/2012, 15h20
  4. Retour à la ligne mais pas les autres tags
    Par thierryler dans le forum JSF
    Réponses: 6
    Dernier message: 02/12/2010, 20h48
  5. Réponses: 3
    Dernier message: 09/07/2009, 13h42

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