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 :

XML, problème de DOCTYPE non standard [DOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut XML, problème de DOCTYPE non standard
    Bonjour,
    j'ai un soucis avec le DOCYTPE d'un document que je parse avec DOM.
    Ca fait plusieurs jours que je cherche une solution, mais rien ne correspond à mon problème qui semble être assez spécifique...

    J'ai un fichier xml avec l'entête suivante :
    <!DOCTYPE Nomquelconque>

    Je le parse avec DOM, en faisant des modifications à l'intérieur (un simple remplacement d'une valeur d'un élément bien précis).
    Tout marche sans problème sauf que lorsque j'écris le résultat (avec Transformer), j'obtiens un document qui ne contient pas EXACTEMENT le même DOCTYPE.
    Voici le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Source source = new DOMSource(doc);
     
    // Prepare the output file
    File file = new File(filename);
    Result result = new StreamResult(file);
     
    // Write the DOM document to the file
    Transformer xformer = TransformerFactory.newInstance().newTransformer();
     
    xformer.setOutputProperty(OutputKeys.INDENT, "yes");
    xformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
     
    xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "Test");
    Le problème, c'est que j'obtiens
    <!DOCTYPE Nomquelconque SYSTEM "Test">
    alors qu'il me faut impérativement
    <!DOCTYPE Nomquelconque>
    Y a-t-il un moyen propre d'arriver au résultat que je souhaite ?

    Merci mille fois d'avance pour votre aide, parce que là j'ai l'impression d'avoir tout essayé...

    dondamiano

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut
    Si ça intéresse quelqu'un, j'ai plus ou moins résolu le problème avec ces options sur mon DocumentBuilderFactory :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setFeature("http://apache.org/xml/features/dom/include-ignorable-whitespace", false);
     
    dbf.setFeature("http://xml.org/sax/features/validation", false);
    dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);
    dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
    DocumentBuilder db = dbf.newDocumentBuilder();

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    C'est bon à savoir... Mais c'est beaucoup s'embêter pour rien, pour un truc où JDOM nous laisserait régler ça trivialement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. XML non standard
    Par tifaz dans le forum Informatica
    Réponses: 0
    Dernier message: 11/12/2012, 10h42
  2. [Lazarus] Problème de fonctionnement avec un curseur non standard
    Par ChPr dans le forum Lazarus
    Réponses: 1
    Dernier message: 09/08/2011, 17h41
  3. Réponses: 0
    Dernier message: 05/11/2009, 06h46
  4. [MySQL] Problème de connexion car mysql utilise un port non standard
    Par SsinedD dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/03/2006, 14h27
  5. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00

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