j'ai besoin de récupérer le path de mon application pour y ecrire et lire un fichier xml car apparament j'ecris dans la racine
ma classe qui ecrit le fichier xml qui contient que la racine application:
Code Java : 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 public class Filesauv { public static void lance() { DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder; try { dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.newDocument(); //add elements to Document Element rootElement = doc.createElementNS("http://www.journaldev.com/application", "Applications"); //append root element to document doc.appendChild(rootElement); //for output to file, console TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); //for pretty print transformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc); //write to console or file StreamResult console = new StreamResult(System.out); StreamResult file = new StreamResult(new File("employee.xml")); //write data transformer.transform(source, console); transformer.transform(source, file); System.out.println("DONE"); } catch (Exception e) { e.printStackTrace(); } } }
et ma classe qui lie ce fichier et qui lui ajoute un element :
Code Java : 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 public class ModifyXMLDOM extends MainActivity { public static void lance(){ String filePath = "employee.xml"; File xmlFile = new File(filePath); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder; try { dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(xmlFile); doc.getDocumentElement().normalize(); //add new element addElement(doc); //write the updated document to file or console doc.getDocumentElement().normalize(); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new File("employee.xml")); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.transform(source, result); System.out.println("XML file updated successfully"); } catch (SAXException | ParserConfigurationException | IOException | TransformerException e1) { e1.printStackTrace(); } } private static void addElement(Document doc) { NodeList employees = doc.getElementsByTagName("Applications"); Element emp = null; //loop for each employee emp = (Element) employees.item(0); Element appliElement = doc.createElement("application"); Element serviceElement1 = doc.createElement("messagerie"); Element serviceElement2 = doc.createElement("repertoire"); Element serviceElement3 = doc.createElement("calculatrice"); Element serviceElement4 = doc.createElement("calendrier"); serviceElement1.appendChild(doc.createTextNode(m)); serviceElement2.appendChild(doc.createTextNode(re)); serviceElement3.appendChild(doc.createTextNode(ca)); serviceElement4.appendChild(doc.createTextNode(cale)); appliElement.appendChild(serviceElement1); appliElement.appendChild(serviceElement2); appliElement.appendChild(serviceElement3); appliElement.appendChild(serviceElement4); emp.appendChild(appliElement); } }
Partager