Bonjour,
pour mon appli j'ai besoin de modifier des attributs dans un fichier xml, y a t il un moyen autre que de tout recuperer afin de recreer entienrement un fichier xml ?
merci de votre aide
Version imprimable
Bonjour,
pour mon appli j'ai besoin de modifier des attributs dans un fichier xml, y a t il un moyen autre que de tout recuperer afin de recreer entienrement un fichier xml ?
merci de votre aide
j'ai tout lu vos liens et je reste un peu perplexe.
Dans mon cas j'ai un tout petit fichier XML (fichier de config). Je desire juste changer la valeur d'un attribut (de 0 à 1).
Voila mon code
Comment dois je traiter cette ligne pour changer mon attribut :Code:
1
2
3
4
5
6
7
8
9
10 XmlNode rootNode=fileXml.DocumentElement; XmlNodeList xmlList = rootNode.ChildNodes; for(int i=0; i<xmlList.Count; i++) { if(xmlList.Item(i).Attributes.Item(0).InnerText == "0"){ cImages = xmlList[i].InnerText; xmlList.Item(i).Attributes.Item(0).Attributes.Item(0).InnerText = "1"; break; } }
J'utilise XmlDocument fileXml=new XmlDocument();Code:
1
2 xmlList.Item(i).Attributes.Item(0).Attributes.Item(0).InnerText = "1";
merci
je tourne en rond !!! help :oops:
Salut,
je vais peut-être dire un truc bête mais ne peux-tu pas charger ton xml dans un DataSet, modifier les Rows souhaitées puis ré-écrire ton xml ?
Ca me semble plus simple d'utiliser les propriétés Read/Write XML du DataSet. M'enfin je pense que ça dépend du contenu de ton xml.
Je veux simplement changer une valeur d'un attribut (de 0 à 1).
Je trouve ca fou que je sois obligé de passer par un dataset.
Je vais essayer quand meme.
On sait jamais ca peut etre utile :
La
Mais j avais vu un exemple ou effectivement (c etait dans le cas d une installation) ou on passait par un xmldom. Je crois que c est dans l installation du starterkit portal (un truc du genre). Si tu as reflector, tu dois pouvoir verifier. Si je retrouve le code avant, je le fais passer.
euh, je parse comment mon dataSet :
Code:
1
2
3
4
5
6 DataSet oDataSet = new DataSet("images"); oDataSet.ReadXml(@"C:\Inetpub\application\test\wallpaperManagment\xml\images.xml"); foreach (DataRow row in oDataSet.Tables[0].Rows){ }
J ai un truc dans le genre (si ca peut aider)
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 Public Function GetFiltre(ByVal FormulaireName As String, ByVal DataGridViewName As String) As String Dim _filtre As String = "" Try ' Récupération des lignes de filtre Dim tb As DataTable = _data.Formulaire Dim foundRows() As DataRow foundRows = tb.Select("Nom ='" & FormulaireName & "'") Dim gridRows() As DataRow For Each rw As DataRow In foundRows gridRows = rw.GetChildRows("Formulaire_Grille") For Each grid As DataRow In gridRows If (grid.Item("Nom") = DataGridViewName) Then If (grid.Item("Filtre") IsNot Nothing) Then _filtre = grid.Item("Filtre") End If End If Next Next Catch ex As System.Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try Return _filtre End Function
j'arrive à rien !!!!
avec t.Rows[0].Table.Columns["status"], j'arrive a avoir le nom de la colonne, y a plein de proprietes et de methodes maus impossible d'affixhé la value de mon attribut status. !!!!!
HELP :evil:
J ai retrouvé le truc dont je t ai parlé plus haut. C est un bout de code qui m avait servi pour mettre a jour le ConnectionString d un web.config. J avais trouvé des bouts de code sur des exemples de Crosoft. Ca fonctionne (c etait sous net1.1)
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 // Modification du fichier de configuration "web.config" private void EditConfigFile(String instanceName, String vdir) { // Récupère le chemin du web.config String _dir = GetRep(); FileInfo _config = new FileInfo(_dir + @"Web.config"); // Charge le fichier de config dans un XML XmlDocument _xmlDoc = new XmlDocument(); _xmlDoc.Load(_config.FullName); // Recherche le noeud correct pour modifier sa valeur foreach (XmlNode Node in _xmlDoc.SelectSingleNode("configuration/appSettings")) { if (Node.Name == "add") { // Modification de la chaine de connexion a la base de données if (Node.Attributes.GetNamedItem("key").Value == "ConnectionString") Node.Attributes.GetNamedItem("value").Value = "Server=" + instanceName + ";Integrated Security=SSPI; Database=Portail; Persist security info=False"; // Modification du chemin du fichier de configuration xml du portail if (Node.Attributes.GetNamedItem("key").Value == "configFile") Node.Attributes.GetNamedItem("value").Value = "/" + vdir + @"/PortalConf.xml"; // Modification du chemin virtuel de l application if (Node.Attributes.GetNamedItem("key").Value == "vpath") Node.Attributes.GetNamedItem("value").Value = "/" + vdir; // Modification du chemin repertoire IIS if (Node.Attributes.GetNamedItem("key").Value == "vdir") Node.Attributes.GetNamedItem("value").Value = _dir; } } // Modifie le fichier de config _xmlDoc.Save(_config.FullName); }
J espere que ca te servira.Code:
1
2
3
4
5 private String GetRep() { String _rep = (this.Context.Parameters["rep"]).ToString(); return _rep; }
Dans le même genre que Pasiphae, regarde ma classe ConfigReaderWriter:
http://morpheus.developpez.com/trucs/classes/
:wink:
merci je vais essayer et vous tenir au jus
La solution : http://morpheus.developpez.com/trucs/classes/
fonctionne bien que je la trouvepas tres intuitive.
Merci.