Créer un fichier XML avec JAVA
Najet
-
codeur_java Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
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!
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:
- Créer un fichier XML avec JAVA
- Fichier bin - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Creer un fichier .bat - Guide
- Jeux java itel - Télécharger - Jeux vidéo
- Créer un compte google - Guide
11 réponses
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");
}
}
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");
}
}
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.....
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.....
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
http://www.javacademia.com/2015/07/dom-parser-comment-creer-un-fichier-xml.html
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.
@+
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.
@+
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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 .
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 .
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é!
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
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.
Sans t’embêter avec du DOM ou autre.
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...
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 "%CATOUT%" copy /b %CATOUT% \\regor\RO9246
if not exist "%CATOUT%" echo "The file %CATOUT% doesn't exist."
</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!!!
<?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 "%CATOUT%" copy /b %CATOUT% \\regor\RO9246
if not exist "%CATOUT%" echo "The file %CATOUT% doesn't exist."
</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!!!