source: ether_megapoli/trunk/service/implementation/com/medias/integration/lecture_ecriture/XMLParser.java @ 482

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

BO insertion données _ insertion code medias package insertion

  • Property svn:executable set to *
File size: 3.6 KB
Line 
1/**
2 * Created on 24 Janvier. 2006
3 *  @author
4 */
5package integration.lecture_ecriture;
6
7
8import org.jdom.*;
9import org.jdom.input.SAXBuilder;
10import org.jdom.output.XMLOutputter;
11import integration.exceptions.*;
12
13import java.io.*;
14
15/**
16 *
17 * Classe permettant de lire, écrire ou modifier des fichiers XML.
18 */
19
20public class XMLParser {
21
22    /** Document JDOM représentant le fichier XML manipulé. **/
23    private Document doc;
24
25
26    /**
27     * Ajoute un élément é une racine.
28     * @param root Elément racine.
29     * @param name Nom de l'élément.
30     * @param value Valeur de l'élément.
31     */
32    public void createXMLRepresentation(Element root, String name, String value) {
33        Element element = new Element(name);
34        element.setText(value);
35        root.addContent(element);
36    }
37
38    /**
39     * Ajoute un élément é une racine.
40     * @param root Elément racine.
41     * @param element Elément é ajouter.
42     */
43    public void createXMLRepresentation(Element root, Element element) {
44        root.addContent(element);
45    }
46
47    /**
48     * Renvoie l'élément enfant d'un élément enfant de la racine du document.
49     * @param parent Nom de l'élément parent de l'élément é renvoyer.
50     * @param child Nom de l'élément é renvoyer.
51     * @return L'élément recherché.
52     */
53    public Element getRootElement(String parent, String child) {
54        Element el = doc.getRootElement();
55        return el.getChild(parent).getChild(child);
56    }
57
58    /**
59     * Ecrit un document JDOM dans un fichier XML.
60     * @param xmlFilename Nom du fichier XML é créer.
61     */
62    public void writeXml(String xmlFilename) {
63        try {
64            XMLOutputter outputter = new XMLOutputter();
65            FileOutputStream output = new FileOutputStream(xmlFilename);
66            outputter.output(doc, output);
67            output.close();
68        } catch (IOException ex) {
69            ex.printStackTrace();
70            EcritureLog.ecrire("Le fichier XML n'a pas pu étre créé.","err");
71        }
72    }
73
74    /**
75     * Ecrit un document JDOM dans un fichier XML.
76     * @param xmlFilename Nom du fichier XML é créer.
77     * @param codage Codage é utiliser.
78     */
79    public void writeXml(String xmlFilename, String codage) {
80        try {
81            XMLOutputter outputter = new XMLOutputter();
82            FileOutputStream output = new FileOutputStream(xmlFilename);
83            outputter.getFormat().setEncoding(codage);
84            outputter.output(doc, output);
85            output.close();
86        } catch (IOException ex) {
87            ex.printStackTrace();
88            EcritureLog.ecrire("Le fichier XML n'a pas pu étre créé.","err");
89        }
90    }
91
92    /**
93     * Renvoie un document é partir d'un fichier XML.
94     * @param xmlFilename Nom du fichier XML.
95     */
96    public void readXml(String xmlFilename) throws XMLException {
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}
Note: See TracBrowser for help on using the repository browser.