source: ether_statistics/service/implementation/com/medias/integration/lecture_ecriture/XMLParser.java @ 569

Last change on this file since 569 was 569, checked in by vmipsl, 12 years ago

Nouveau projet

File size: 3.8 KB
Line 
1/**
2 * Created on 24 Janvier. 2006
3 *  @author
4 */
5package com.medias.integration.lecture_ecriture;
6
7
8import com.medias.EcritureLog;
9import com.medias.integration.exceptions.XMLException;
10import org.jdom.Document;
11import org.jdom.Element;
12import org.jdom.input.SAXBuilder;
13import org.jdom.output.XMLOutputter;
14
15import java.io.FileInputStream;
16import java.io.FileOutputStream;
17import java.io.IOException;
18
19/**
20 *
21 * Classe permettant de lire, écrire ou modifier des fichiers XML.
22 */
23
24public class XMLParser {
25    /**
26     * Ajoute un élément é une racine.
27     * @param root Elément racine.
28     * @param element Elément é ajouter.
29     */
30    public void createXMLRepresentation(Element root, Element element) {
31        root.addContent(element);
32    }
33
34    /**
35     * Ajoute un élément é une racine.
36     * @param root Elément racine.
37     * @param name Nom de l'élément.
38     * @param value Valeur de l'élément.
39     */
40    public void createXMLRepresentation(Element root, String name, String value) {
41        Element element = new Element(name);
42        element.setText(value);
43        root.addContent(element);
44    }
45
46    /**
47     * Renvoie l'élément enfant d'un élément enfant de la racine du document.
48     * @param parent Nom de l'élément parent de l'élément é renvoyer.
49     * @param child Nom de l'élément é renvoyer.
50     * @return L'élément recherché.
51     */
52    public Element getRootElement(String parent, String child) {
53        Element el = doc.getRootElement();
54        return el.getChild(parent).getChild(child);
55    }
56
57    /**
58     * Ecrit un document JDOM dans un fichier XML.
59     * @param xmlFilename Nom du fichier XML é créer.
60     */
61    public void writeXml(String xmlFilename) {
62        try {
63            XMLOutputter outputter = new XMLOutputter();
64            FileOutputStream output = new FileOutputStream(xmlFilename);
65            outputter.output(doc, output);
66            output.close();
67        } catch (IOException ex) {
68            ex.printStackTrace();
69            EcritureLog.ecrire( "Le fichier XML n'a pas pu étre créé.", "err" );
70        }
71    }
72
73    /**
74     * Ecrit un document JDOM dans un fichier XML.
75     * @param xmlFilename Nom du fichier XML é créer.
76     * @param codage Codage é utiliser.
77     */
78    public void writeXml(String xmlFilename, String codage) {
79        try {
80            XMLOutputter outputter = new XMLOutputter();
81            FileOutputStream output = new FileOutputStream(xmlFilename);
82            outputter.getFormat().setEncoding(codage);
83            outputter.output(doc, output);
84            output.close();
85        } catch (IOException ex) {
86            ex.printStackTrace();
87            EcritureLog.ecrire("Le fichier XML n'a pas pu étre créé.","err");
88        }
89    }
90
91    /**
92     * Renvoie un document é partir d'un fichier XML.
93     * @param xmlFilename Nom du fichier XML.
94     */
95    public void readXml(String xmlFilename) throws XMLException
96    {
97        SAXBuilder builder = new SAXBuilder();
98        try {
99                FileInputStream fic = new FileInputStream(xmlFilename);
100            doc = builder.build(fic);
101            fic.close();
102        } catch (Exception e) {
103            throw new XMLException(e);
104        }
105    }
106
107    /**
108     * Crée un élément JDOM.
109     * @param name Nom de l'élément.
110     * @return Elément créé.
111     */
112    public Element createElement(String name) {
113        return new Element(name);
114    }
115
116    /**
117     * Met é jour le document JDOM courant du builder.
118     * @param doc Nouveau document.
119     */
120    public void setDocument(Document doc) {
121        this.doc = doc;
122    }
123
124    /**
125     * Renvoie l'élément root du document courant.
126     * @return Element root.
127     */
128    public Element getRoot() {
129        return doc.getRootElement();
130    }
131
132    /** Document JDOM représentant le fichier XML manipulé. **/
133    private Document doc;
134}
Note: See TracBrowser for help on using the repository browser.