Créer un fichier XML avec JAVA

Najet -  
codeur_java Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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
 
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   Statut Membre Dernière intervention   21
 
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
ssss
 
Element n'est pas reconnu comme type valide
solution svp ?
0
codeur_java Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
Fred
 
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
mimi
 
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   Statut Membre Dernière intervention   21
 
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
sodeboo
 
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
bryce
 
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
bryce
 
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   Statut Membre Dernière intervention   38
 
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
Autre
 
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 3679 Date d'inscription   Statut Contributeur Dernière intervention  
 
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
souma
 
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
fred532
 
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   Statut Membre Dernière intervention   18
 
y a t-il de la documentation sur cette opération de sérialisation ?????
0