OVH Cloud OVH Cloud

Sauver un DOM

10 réponses
Avatar
Guillaume D.
J'utilise DOM et j'arrive à lire un document XML, à le parser, par
contre pour le sauver quelque part, impossible. J'ai cherché dans
l'aide, j'ai rien trouvé.

10 réponses

Avatar
Farid
"Guillaume D." wrote in message
news:41001129$0$26038$
J'utilise DOM et j'arrive à lire un document XML, à le parser, par
contre pour le sauver quelque part, impossible. J'ai cherché dans
l'aide, j'ai rien trouvé.



public void saveXMLFile(FileOutputStream xmlFileStream) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();

//Create the XML data
....


//Save the XML data in the stream
StreamResult result = new StreamResult(xmlFileStream);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.transform(new DOMSource(document), result);

}



Farid.

Avatar
Guillaume D.
Farid wrote:
"Guillaume D." wrote in message
news:41001129$0$26038$

J'utilise DOM et j'arrive à lire un document XML, à le parser, par
contre pour le sauver quelque part, impossible. J'ai cherché dans
l'aide, j'ai rien trouvé.




public void saveXMLFile(FileOutputStream xmlFileStream) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();

//Create the XML data
....


//Save the XML data in the stream
StreamResult result = new StreamResult(xmlFileStream);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.transform(new DOMSource(document), result);

}



Merci Farid. J'avais fini par trouver ca aussi sur le net.

Guillaume D.


Avatar
Guillaume D.
Farid wrote:
"Guillaume D." wrote in message
news:41001129$0$26038$

J'utilise DOM et j'arrive à lire un document XML, à le parser, par
contre pour le sauver quelque part, impossible. J'ai cherché dans
l'aide, j'ai rien trouvé.




public void saveXMLFile(FileOutputStream xmlFileStream) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();

//Create the XML data
....


//Save the XML data in the stream
StreamResult result = new StreamResult(xmlFileStream);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.transform(new DOMSource(document), result);

}





Par contre, quand j'ouvre mon fichier xml, tout est concaténé, il n'y a
aucune indentation. :(


Avatar
Farid
Par contre, quand j'ouvre mon fichier xml, tout est concaténé, il n'y a
aucune indentation. :(


yo, c'est ce que j'ai aussi.
enfin pour moi c'est pas un problem car je ne regarde que tres rarement le
fichier xml..
il n'est gere que par d'autre bout du programme lorsque je le lit et le
parse.
quand j'ai envie de le regarder, en general, j'utilise le plugin xmlbuddy
sous eclipse. il a une fonction pour formatter (indenter) le xml.

Farid.

Avatar
Farid
Par contre, quand j'ouvre mon fichier xml, tout est concaténé, il n'y a
aucune indentation. :(


j'ai trouver ca
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

c'est pas la sol complete, mais on s'y rapproche...
ca vient de la:
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html

Farid

Avatar
Olivier Thomann
Le Thu, 22 Jul 2004 22:55:08 +0200, "Farid" a
j'ai trouver ca
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
c'est pas la sol complete, mais on s'y rapproche...
ca vient de la:
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html
Il faut effectivement ça, mais le niveau d'indentation est à 0 par

défaut. Super utile :-).
Essaye de rajouter ça:
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","4");
--
Olivier

Avatar
Guillaume D.
Farid wrote:
Par contre, quand j'ouvre mon fichier xml, tout est concaténé, il n'y a
aucune indentation. :(



j'ai trouver ca
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

c'est pas la sol complete, mais on s'y rapproche...
ca vient de la:
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html

Farid




transformer.setOutputProperty("indent-amount","4");


Ca fonctionne, cependant, j'avoue que j'aimerais trouver une constant du
type OutputKeys.INDENT parce que là, je trouve que ca fait limite bricolo ;)

Guillaume D.


Avatar
Guillaume D.
Guillaume D. wrote:
Farid wrote:

Par contre, quand j'ouvre mon fichier xml, tout est concaténé, il n'y a
aucune indentation. :(




j'ai trouver ca
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

c'est pas la sol complete, mais on s'y rapproche...
ca vient de la:
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html

Farid




transformer.setOutputProperty("indent-amount","4");


Mmm en fait, ça a l'air également de lever une exception :(



Avatar
Farid
Il faut effectivement ça, mais le niveau d'indentation est à 0 par
défaut. Super utile :-).
Essaye de rajouter ça:

transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","4

");
--
Olivier


Merci olivier.
ca marche impec.

Farid.

Avatar
Farid
Mmm en fait, ça a l'air également de lever une exception :(


en rajoutant le code d'olivier ca marche impec.

....
//Save the XML data in the stream
StreamResult result = new StreamResult(xmlFileStream);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");

transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","4
");
transformer.transform(new DOMSource(document), result);
....

Farid.