Je te mets les deux codes:
-avec racineAbs:
-sans passer par la balise <document>Code:
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 void FenetreConnect::InscriptionXML(QString strLogin,QString strPwd) { //Ouverture du fichier en écriture QFile file( "user.xml" ); file.open(QIODevice::WriteOnly); QDomDocument doc; //Ajoute le contenu du fichier XML dans un QDomDocument et dit au QDomDocument de ne pas tenir compte des namspaces doc.setContent(&file, false); //QDomElement racine = doc.documentElement(); // Ici tu obtiens la racine "abstraite" <document> QDomElement racineAbs = doc.documentElement () ; QDomElement racine = racineAbs.firstChildElement () ; // creation d'une balise utilisateur QDomElement Utilisateur = doc.createElement("Utilisateur"); //Utilisateur est le premier enfant de la balise Utilisateurs racine.appendChild(Utilisateur); //creation d'une balise Login QDomElement Login = doc.createElement("Login"); QDomText DomLogin = doc.createTextNode(strLogin); //Le texte strLogin est placé entre les balises "Login" Login.appendChild(DomLogin); //Login est le premier enfant de la balise Utilisateur Utilisateur.appendChild(Login); //creation d'une balise Password QDomElement Password = doc.createElement("Password"); QDomText DomPwd = doc.createTextNode(strPwd); //Le texte strPwd est placé entre les balises "Password" Password.appendChild(DomPwd); //Password est le second enfant de la balise Utilisateur Utilisateur.appendChild(Password); //Insertion de la balise "Password" derrière "Login" doc.insertAfter(Password,Login); //Insertion de la balise "Login" derrière "Utilisateur" doc.insertAfter(Login,Utilisateur); // insertion "d'Utilisateur" derriere la racine racine.insertAfter (Utilisateur, racine.firstChild ()) ; //Sauvegarde du fichier int indent =2; QTextStream ts( &file ); doc.save(ts, indent); file.close(); }
mais le résultat est identique, le fichier xml est vierge, alors la je suis un peu perdu 8OCode:
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 void FenetreConnect::InscriptionXML(QString strLogin,QString strPwd) { //Ouverture du fichier en écriture QFile file( "user.xml" ); file.open(QIODevice::WriteOnly); QDomDocument doc; //Ajoute le contenu du fichier XML dans un QDomDocument et dit au QDomDocument de ne pas tenir compte des namspaces doc.setContent(&file, false); QDomElement racine = doc.documentElement(); // Ici tu obtiens la racine "abstraite" <document> //QDomElement racineAbs = doc.documentElement () ; //QDomElement racine = racineAbs.firstChildElement () ; // creation d'une balise utilisateur QDomElement Utilisateur = doc.createElement("Utilisateur"); //Utilisateur est le premier enfant de la balise Utilisateurs racine.appendChild(Utilisateur); //creation d'une balise Login QDomElement Login = doc.createElement("Login"); QDomText DomLogin = doc.createTextNode(strLogin); //Le texte strLogin est placé entre les balises "Login" Login.appendChild(DomLogin); //Login est le premier enfant de la balise Utilisateur Utilisateur.appendChild(Login); //creation d'une balise Password QDomElement Password = doc.createElement("Password"); QDomText DomPwd = doc.createTextNode(strPwd); //Le texte strPwd est placé entre les balises "Password" Password.appendChild(DomPwd); //Password est le second enfant de la balise Utilisateur Utilisateur.appendChild(Password); //Insertion de la balise "Password" derrière "Login" doc.insertAfter(Password,Login); //Insertion de la balise "Login" derrière "Utilisateur" doc.insertAfter(Login,Utilisateur); // insertion "d'Utilisateur" derriere la racine racine.insertAfter (Utilisateur, racine.firstChild ()) ; //Sauvegarde du fichier int indent =2; QTextStream ts( &file ); doc.save(ts, indent); file.close(); }