Créer un fichier XML avec JAVA

Fermé
Najet - 19 avril 2005 à 10:34
codeur_java Messages postés 6 Date d'inscription jeudi 22 janvier 2015 Statut Membre Dernière intervention 18 juillet 2015 - 2 juil. 2015 à 02:04
Salut tlm,
Je souhaite écrire un fichier XML en utilisant JAVA.
Est-ce c'est une écriture normale comme pour un fichier ordinaire ou bien y a des méthodes spécifiées pour xml en JAVA?
Merci pour tous et bonne journée!
A voir également:

11 réponses

voila comment sérialiser et désérialiser en xml avec la biblioth
25 déc. 2009 à 17:24
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;

//Sérialisation et déserialisation en xml avec la bibliothèque xstream.

public class Donnees{
public static void serialiserDonnees() {
XStream xstream = new XStream(new DomDriver());

// convertion du contenu de l'objet data de type Donnees en XML
String xml = xstream.toXML(Donnees.getUniqueInstance());

// affichage du résultat de la conversion xml
//System.out.println(xml);

// Sauvegarde sur le fichier donnees.xml de la conversion XML
try {
File fichier = new File("donnees.xml");
// On aplati l'objet
FileOutputStream fos;
fos = new FileOutputStream(fichier);

// chaîne à rajouter
String enco = "<?xml version='1.0' encoding='UTF-8'?>\n";

// ecriture chaine dans le fichier
fos.write(enco.getBytes());

// On créé le fichier XML (important on créé un fichier XML par
// objet qu'on veut serialiser)
xstream.toXML(Donnees.getUniqueInstance(), fos);

fos.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}

public static void deserialiserDonnees() {
Donnees nouvData = null;

XStream xstream = new XStream(new DomDriver());

try {
// Redirection du fichier donnees.xml vers un flux d'entrée
// fichier
FileInputStream fis = new FileInputStream(new File("donnees.xml"));
// Désérialisation du fichier donnees.xml vers un objet nouvData
// de type Donnees
nouvData = (Donnees) xstream.fromXML(fis);
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}

Donnees.getUniqueInstance().setMapPhotos(nouvData.getMapPhotos());
Donnees.getUniqueInstance().setMapVideos(nouvData.getMapVideos());
Donnees.getUniqueInstance().setMapMusiques(nouvData.getMapMusiques());

// System.out.println("Deserialisation terminée");
}
}
22
era3d Messages postés 3 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 20 mai 2008 21
6 déc. 2007 à 15:41
Bonjour à tous ;

Il y a plusieurs methode pour créer un document xml. Les parseurs SAX et DOM sont tres utilisés; JAVA a donc profiter et combiner les forces de ces deux parseurs pour mettre en place un API speciale qui permet de gerer les fichiers XML qui est JDOM.

Voici un bout de code qui permet de créer un fichier XML avec JDOM :

try{
//l'element root du document xml
Element root = new Element("etudiants");
Document doc = new Document(root);
//un noeud etudiant
Element node1 = new Element("etudiant");
node1.setAttribute("prenom","titi" );
node1.setAttribute("nom", "nomtiti");
Element node2 = new Element("etudiant");
node2.setAttribute("prenom","toto" );
node2.setAttribute("nom", "nomtoto");
....
....
root.addContent(node1);
root.addContent(node2);


}catch (Throwable e) {
e.printStackTrace();
}
write( doc, outWriterOrOutputOrFile, null );
.......//le doc xml est pret il faut donc l'ecrire voila la methode :

static public void write( org.jdom.Document doc,
Object outWriterOrOutputOrFile, String outputEncoding ) {
FileOutputStream fout = null;
try {
Format form = Format.getPrettyFormat();
// if provided, force the output encoding (otherwise, it defaults to "UTF8")
if ( null != outputEncoding ) {
form.setEncoding( outputEncoding );
}
XMLOutputter outputter = new XMLOutputter(form);
if (outWriterOrOutputOrFile instanceof OutputStream)
outputter.output(doc, (OutputStream) outWriterOrOutputOrFile);
else if (outWriterOrOutputOrFile instanceof Writer)
outputter.output(doc, (Writer) outWriterOrOutputOrFile);
else if (outWriterOrOutputOrFile instanceof File) {
File f = (File) outWriterOrOutputOrFile;
fout = new FileOutputStream(f);
outputter.output(doc, fout);
fout.close();
} else {
ErrorUtil.prt("XMLUtil.write() : type du writer inconnu !");
}
} catch (Exception e) {
ErrorUtil.prt("Impossible d'ecrire le JDOM");
e.printStackTrace();
if (fout != null)
try {
fout.close();
} catch (Exception ee) {
}
}
}


Et voila ; biensur a vous de modifier les parametres de votre XML et les noeuds.....
19
Element n'est pas reconnu comme type valide
solution svp ?
0
codeur_java Messages postés 6 Date d'inscription jeudi 22 janvier 2015 Statut Membre Dernière intervention 18 juillet 2015
2 juil. 2015 à 02:04
voici la classe java qui permet de créer un fichier xml :
http://www.javacademia.com/2015/07/dom-parser-comment-creer-un-fichier-xml.html
0
je te conseille de lancer un coup d'oeil aux fonctionnalités qu'offre l'API JDOM. C'est très simple à manipuler et rend la vie facile quand à la gestion des documents XML sous Java
Pour te restreindre les choses : tapes ceci sur Google

Simplifier la programmation XML avec JDOM
c'est le titre d'un article qui pourrait t'aider; mais j'ai pas le lien du site.
@+
1
salem, svp j'ai un pb de lecture du fichier XML a partir du java je pense qu'il existe une ou des bibliothèques pour que les programmes s'executent svp je vous demande de m'aider merci
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
era3d Messages postés 3 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 20 mai 2008 21
20 mai 2008 à 14:43
Coucou ;
C'est possible de lire un document XML en utilisant le JAVA, mais il faut dés le début choisir le type de parseur : DOM SAX ou JDOM....

Je te conseille d'utiliser JDOM.
Le parsing est simple : il suffit, dans ton code JAVA de donner le nom entier de ton noeud root racine à JDOM.... Avec des méthodes simples, JDOM fera le reste....

Cordialement
0
Pour celui qui veux utiliser XML sous java, écris le sous un editeur de text normal puis declares une variable de type File qui le contiendra apres

pour celle qui veux parcourir son fichier XML alors tu dois voir par rapprot a ton probleme soit avec SAX si ta pas besoin d'une traçabilité des noeud (XPATH) sinon le DOM
mais il faut declaé un curseur avant selon tes besoins .
0
Oui merci mais j'avais déja regardé. Mais le problème c'est que j'y connais vraiment rien, du moins je ne sais pas comment commencé!
-2
Salut, est ce que tu as réussi à écrire dans un fichier XML? Moi je ne vois pas trop comment faire surtout au niveau du code. Si tu peux me montrer des sources ca m'aiderai beaucoup. Merci
-3
stillfelil Messages postés 135 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 21 février 2009 38
20 mai 2005 à 23:43
ce que je peut vous conseiller c'est de jeter un coup d'oeuil sur l'API xerces, elle fournit l'outil necessaire pour la manipulation des fichiers XML, Analyse, création etc...
c'est vrément pas difficile
0
Si tu as tout ton fichier de sortie, le plus simple est d’écrire comme un fichier texte.
Sans t’embêter avec du DOM ou autre.
-3
Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006 492
19 avril 2005 à 10:45
Je connais pas trop XML mais ce qui est sur c'est que tu peux le faire comme pour ecrire d'autres fichiers... Peut etre existe-t-il des trucs pour se simplifier la tache mais je suis pas vraiment sur...
-4
je veux generer ce fichier xml dans un code en java automatiquement:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root SYSTEM "Parameters.dtd">
<root batch_name="PrintBatchDescriptor" user="" password="" env="" >
<inputParameters>
<![CDATA[
<PRINT_BATCH>
<PRINT_CLIENT>RK5797</PRINT_CLIENT>
<PRINT_DEFAULT>
<PRINT_NB_COPY>1</PRINT_NB_COPY>
<PRINT_OUTPUT_PRINTER>TIFF</PRINT_OUTPUT_PRINTER>
<PRINT_OUTPUT_PRINTER_PARAMETERS>
<?xml version="1.0" encoding="utf-8" ?><printer name="TIFF" export="RASTER"><defaultFormat name="Letter" orientation="landscape"/><maxFormat name="Letter"/><defaultMargins left="10" right="10" top="10" bottom="10"/><execUnix/><execWindows>rem Default:\\regor\RO9246
if exist &quot;%CATOUT%&quot; copy /b %CATOUT% \\regor\RO9246
if not exist &quot;%CATOUT%&quot; echo &quot;The file %CATOUT% doesn&apos;t exist.&quot;
</execWindows><rtimeUnix/><rtimeWindows>rem Default:D:\Temp\catout.out
set CATOUT=D:\Temp\catout.out
</rtimeWindows><RASTERProperties><TIFFProperties DPI="600" compression="Fax Group 4" quality="1"/></RASTERProperties></printer></PRINT_OUTPUT_PRINTER_PARAMETERS>
<PRINT_OUTPUT_FILE>
D:\Local\Home\Data\M523P1005-01.tif
</PRINT_OUTPUT_FILE>
<PRINT_IMAGE_FORMAT_USE>0</PRINT_IMAGE_FORMAT_USE>
<PRINT_FORM_WIDTH>215.9</PRINT_FORM_WIDTH>
<PRINT_FORM_HEIGHT>279.4</PRINT_FORM_HEIGHT>
<PRINT_FORM_ORIENTATION>1</PRINT_FORM_ORIENTATION>
<PRINT_POSITION_X>10</PRINT_POSITION_X>
<PRINT_POSITION_Y>70.4424</PRINT_POSITION_Y>
<PRINT_SCALE>0.329798</PRINT_SCALE>
<PRINT_MARGIN_LEFT>10</PRINT_MARGIN_LEFT>
<PRINT_MARGIN_RIGHT>10</PRINT_MARGIN_RIGHT>
<PRINT_MARGIN_TOP>10</PRINT_MARGIN_TOP>
<PRINT_MARGIN_BOTTOM>10</PRINT_MARGIN_BOTTOM>
<PRINT_ROTATION>0</PRINT_ROTATION>
<PRINT_MAP_TO_PAPER>0</PRINT_MAP_TO_PAPER>
<PRINT_WHITE_PIXEL>1</PRINT_WHITE_PIXEL>
<PRINT_BANNER>Printed by er25389 on 04/06/2008 12:30:54</PRINT_BANNER>
<PRINT_BANNER_POSITION>0</PRINT_BANNER_POSITION>
<PRINT_LOGO_VISIBILITY>0</PRINT_LOGO_VISIBILITY>
<PRINT_LOGO_FILE>

</PRINT_LOGO_FILE>
<PRINT_COLOR_MODE>0</PRINT_COLOR_MODE>
<PRINT_QUALITY>0</PRINT_QUALITY>
<PRINT_GAMMA>1</PRINT_GAMMA>
<PRINT_LINEWITH_SPECIFICATION>0</PRINT_LINEWITH_SPECIFICATION>
<PRINT_LINETYPE_SPECIFICATION>0</PRINT_LINETYPE_SPECIFICATION>
<PRINT_LINECAP>0</PRINT_LINECAP>
<PRINT_BACKGROUND_COLOR_RED>1</PRINT_BACKGROUND_COLOR_RED>
<PRINT_BACKGROUND_COLOR_GREEN>1</PRINT_BACKGROUND_COLOR_GREEN>
<PRINT_BACKGROUND_COLOR_BLUE>1</PRINT_BACKGROUND_COLOR_BLUE>
<PRINT_DPI>150</PRINT_DPI>
<PRINT_TEXT_BLANKING>0</PRINT_TEXT_BLANKING>
<PRINT_LINE_TYPE_OVERLAP>0</PRINT_LINE_TYPE_OVERLAP>
<PRINT_VISU_IMAGE_COUNT>1</PRINT_VISU_IMAGE_COUNT>
<PRINT_VISU_IMAGE_NUM>-2</PRINT_VISU_IMAGE_NUM>
<PRINT_VISU_CLIP_TO_SHEET>1</PRINT_VISU_CLIP_TO_SHEET>
<PRINT_VISU_DETAIL_SHEET>1</PRINT_VISU_DETAIL_SHEET>
<PRINT_VISU_FILTER_NAME> </PRINT_VISU_FILTER_NAME>
<PRINT_VISU_RENDERING>1</PRINT_VISU_RENDERING>
</PRINT_DEFAULT>
<PRINT_JOB>
<PRINT_DOC>
D:\Local\Home\Data\M523P1005-01.CATDrawing
</PRINT_DOC>
</PRINT_JOB>
</PRINT_BATCH>
]]>
<file id="doc_0" destination="" filePath="D:\Local\Home\Data\M523P1005-01.CATDrawing" type="bin" upLoadable="Yes" automatic="1"/>
</inputParameters>
<outputParameters>
<file id="output_0" destination="" filePath="D:\Local\Home\Data\M523P1005-01A.tif" type="bin" upLoadable="Yes" automatic="1"/>
</outputParameters>
<PCList>
<PC name="_SL3.slt_85AB9K65691" />
</PCList>
</root>

merci de me repondre ca urge!!!
-7
Pété de rire : "vous pouvez résoudre mon problème à ma place ? Merci de me répondre ca urge!!!"
0
zemzoum89 Messages postés 543 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 11 novembre 2012 18
2 oct. 2010 à 16:14
y a t-il de la documentation sur cette opération de sérialisation ?????
0