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
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
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.
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
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.
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
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.
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
Bonjour
byte[] xx
document = sxb.build(new StringReader(new String(xx).replaceAll("\r\n", "")));
De une, la demande concerne un XMLOutputter.
De deux, je pense que l'idée est de transformer ça :
en ça :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <a> <b> </b> </a>
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part <a><b> </b></a>
Mais bon, sait-on jamais.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Bonjour
Oui ta derniere remarque est juste, comme par XmlOutputter je ne vois pas la solution j'en cherche une autre pour JDOM
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager