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
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
MCTS Microsoft.
La conception : Prendre le temps pour gagner du temps.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 xmlList.Item(i).Attributes.Item(0).Attributes.Item(0).InnerText = "1";
merci
MCTS Microsoft.
La conception : Prendre le temps pour gagner du temps.
je tourne en rond !!! help![]()
MCTS Microsoft.
La conception : Prendre le temps pour gagner du temps.
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.
MCTS Microsoft.
La conception : Prendre le temps pour gagner du temps.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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){ }
MCTS Microsoft.
La conception : Prendre le temps pour gagner du temps.
J ai un truc dans le genre (si ca peut aider)
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 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![]()
MCTS Microsoft.
La conception : Prendre le temps pour gagner du temps.
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 : 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 // 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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/
![]()
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
merci je vais essayer et vous tenir au jus
MCTS Microsoft.
La conception : Prendre le temps pour gagner du temps.
La solution : http://morpheus.developpez.com/trucs/classes/
fonctionne bien que je la trouvepas tres intuitive.
Merci.
MCTS Microsoft.
La conception : Prendre le temps pour gagner du temps.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager