Bonjour
j'ai un fichier du type:
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <accounts> <account> <LogonID>jsmith</LogonID> <FirstName>John</FirstName> <LastName>Smith</LastName> </account> </accounts>
Je dois representer une base de donnee dans un fichier XML, et pouvoir executer des actions du type modifier firstName=toto où logonID a pour valeur jsmith
mon code est le suivant
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 public void modifyElement2(String xmlFile) throws SAXException, IOException, TransformerException, ParserConfigurationException { File file = new File(xmlFile); // mon fichier xml contenant la database System.out.println("1"); if (file.exists()){ // 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(xmlFile); Document doc = constructeur.parse(xml); Vector <String> arrKeys=parserXml.getArrKeys(); String primaryKey =parserXml.getPrimaryKey(); String value = parserXml.getValuePrimaryKey(); NodeList listfind= doc.getElementsByTagName(primaryKey); for(int j=0;j<listfind.getLength();j++){ Element e = (Element) listfind.item(j); if (e.getTextContent().equals(value)){ Node node= e.getParentNode(); NodeList list= node.getChildNodes(); for(int i=0;i<list.getLength();i++){ Node f = list.item(i); if (f.getNodeType()==Node.TEXT_NODE){ getModification(f); } } } } } } public void getModification (Node node){ Iterator i = parserXml.getContent().keySet().iterator(); System.out.println("5"); while (i.hasNext()) { String key = (String)i.next(); //la cle de modification char firstletter=key.charAt(0); int firstletterinASCII = (int) firstletter; String value = (String)parserXml.getContent().get(key); // la valeur de modification if (node.getNodeName().equals(key)){ node.setTextContent(value);} // we change the attribute of the key } } }
mon code ne marche pas et ne maffiche rien
Mais je trouve ca bien long comme fonction pour faire ce aue je fais...Et je dosi imperativement utiliser DOM (fixe par le client)
Je ne comprends vrament pas , pouvez vous m'aider
Partager