Bonjour,
J'utilise DOM pour créer un fichier XML.

Mais je voudrais "crypter" ce fichier XML.

Je ne sais pas comment faire.

J'ai pensé à faire le cryptage juste avant l'écriture dans le fichier XML du contenu, mais je ne sais pas comment lire ce flux.

Si vous avez la solution, merci à vous.


Code de création de document XML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
import java.io.File;
import java.io.IOException;
 
import javax.xml.parsers.*; 
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
 
import org.w3c.dom.*; 
import org.xml.sax.SAXException;
 
 
public class XMLTest {
 
	/**
         * @param args
         * @throws ParserConfigurationException 
         */
	public static void main(String[] args) throws ParserConfigurationException {
 
		//creationFichierXML();
		ajouterAuFichierXML();
	}
 
 
	public static void creationFichierXML() throws ParserConfigurationException{
		// TODO Auto-generated method stub
		// Création d'un nouveau DOM
		DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
		DocumentBuilder constructeur = fabrique.newDocumentBuilder();
		Document document = constructeur.newDocument();
 
		// Propriétés du DOM
		document.setXmlVersion("1.0");
		document.setXmlStandalone(true);
 
		// Création de l'arborescence du DOM
		Element racine = document.createElement("root");
		racine.appendChild(document.createComment("Commentaire sous la racine"));
 
		// It is a new reception
		Element reception = document.createElement("reception");
		racine.appendChild(reception);
 
 
		// Loop on channels values
		for(int i=0;i<9;i++)
		{
			Element channel = document.createElement("channel" + i);
			channel.setTextContent(""+i+"");
			reception.appendChild(channel);
		}
 
		document.appendChild(racine);
 
		try {
			// Création de la source DOM
			Source source = new DOMSource(document);
 
			// Création du fichier de sortie
			File file = new File("SALUT.xml");
			javax.xml.transform.Result resultat = new StreamResult("SALUT.xml");
 
			// Configuration du transformer
			TransformerFactory fabrique2 = TransformerFactory.newInstance();
			Transformer transformer = fabrique2.newTransformer();
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
 
			// Transformation
			transformer.transform(source, resultat);
		}catch(Exception e){
			e.printStackTrace();
		}
 
 
	}
 
	public static void ajouterAuFichierXML(){
 
		try{
			// création d'une fabrique de documents
			DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
 
			// création d'un constructeur de documents
			DocumentBuilder constructeur = fabrique.newDocumentBuilder();
 
			// lecture du contenu d'un fichier XML avec DOM
			File xml = new File("SALUT.xml");
			Document document = constructeur.parse(xml);
 
			//traitement du document
			//voir ExempleDOM.zip
			System.out.println("FICHIER OUVERT :)");
 
			// on obtient la racine
			Element racine = document.getDocumentElement();
 
 
			Element test = document.createElement("test");
			test.setAttribute("id","0");
			racine.appendChild(test);
 
 
			Element channel1 = document.createElement("chan1");
			channel1.setTextContent("VALEUR CHAN1");
			test.appendChild(channel1);
 
			Element channel2 = document.createElement("chan2");
			channel2.setTextContent("VALEUR CHAN2");
			test.appendChild(channel2);
 
			Element channel3 = document.createElement("chan3");
			channel3.setTextContent("VALEUR CHAN3");
			test.appendChild(channel3);
 
 
 
 
			//-------------REECRITURE DU FICHIER XML
 
			try {
				// Création de la source DOM
				Source source = new DOMSource(document);
 
				// Création du fichier de sortie
				File file = new File("SALUT.xml");
				javax.xml.transform.Result resultat = new StreamResult("SALUT.xml");
 
				// Configuration du transformer
				TransformerFactory fabrique2 = TransformerFactory.newInstance();
				Transformer transformer = fabrique2.newTransformer();
				transformer.setOutputProperty(OutputKeys.INDENT, "yes");
				transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
 
				// Transformation
				transformer.transform(source, resultat);
			}catch(Exception e){
				e.printStackTrace();
			}
 
			//---------------------------------------------
 
 
 
 
		}catch(ParserConfigurationException pce){
			System.out.println("Erreur de configuration du parseur DOM");
			System.out.println("lors de l'appel à fabrique.newDocumentBuilder();");
		}catch(SAXException se){
			System.out.println("Erreur lors du parsing du document");
			System.out.println("lors de l'appel à construteur.parse(xml)");
		}catch(IOException ioe){
			System.out.println("Erreur d'entrée/sortie");
			System.out.println("lors de l'appel à construteur.parse(xml)");
		}
	}
 
 
 
 
}