Bonjour,
j'essaie desesperement de modifier un fichier XML par l'intermedaire de SAX. L arbre en mémoire parait pourtant bien etre modifié mais pas le fichier sur le disque
Si quelqu'un a une idée ...
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 String xmlfile="Shared.xml"; // Select node XPath xpath = XPathFactory.newInstance().newXPath(); String file = "test.mp3"; String xPath = "/SharedFile/File/Path[contains(text(), '"+ file +"')]/parent::File"; InputSource inputSource = new InputSource(xmlfile); NodeList nodes = (NodeList)xpath.evaluate(xPath, inputSource, XPathConstants.NODESET); Node node = null; int length = nodes.getLength(); if(length>0){ System.out.println("0"); node = nodes.item(0); // Update node NodeList Mp3Node = node.getChildNodes(); System.out.println("1"); for (int j = 0 ; j < Mp3Node.getLength() ; j++) { Node element = Mp3Node.item(j); if(element.getNodeName().equals("Album")) { System.out.println(element.getNodeName()); System.out.println(element.getFirstChild().getNodeValue() + " --> TESSSSST"); element.getFirstChild().setNodeValue("TESSSSST"); System.out.println(element.getFirstChild().getNodeValue()); } } javax.xml.transform.sax.SAXSource saxSource = new javax.xml.transform.sax.SAXSource(inputSource); TransformerFactory usine = TransformerFactory.newInstance(); Transformer transformeur = usine.newTransformer(); transformeur.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformeur.setOutputProperty(OutputKeys.INDENT, "yes"); transformeur.setOutputProperty(OutputKeys.METHOD, "xml"); transformeur.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transformeur.setOutputProperty(OutputKeys.STANDALONE, "yes"); transformeur.setOutputProperty(OutputKeys.VERSION, "1.0"); transformeur.transform(saxSource, new StreamResult("Test.xml"));
Partager