Bonjour, me voila avec un nouveau problème, j'ai la ligne XML suivante :
Avec le code suivant je récupère la valeur de la ligne et je la modifie et je sauvegarde le fichier XML :<value><![CDATA[<Values:boolean type="boolean" xmlns:Values="Values.xsd"><Values:value>false</Values:value></Values:boolean>
]]></value>
La fonction appelée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Iterator = xPathNav.Select(xPathNav.Compile("/campaignloader/campaign/parameter/parameter/parameter/value")); Iterator.MoveNext(); //Console.WriteLine(GetValueToSet(Iterator.Current.Value, "!!!!!Valeur Modifié!!!!!")); Iterator.Current.SetValue(GetValueToSet(Iterator.Current.Value, "!!!!!Valeur Modifié!!!!!")); xPathDoc.Save(CurrentPath);
Donc lorsque je sauvegarde, j'obtiens ceci dans mon fichier :
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 private string GetValueToSet(string OriginalValue, string NewValue) { string[] valuesplit; string ValueToModify = ""; char[] sep = new char[2]; sep[0] = '<'; sep[1] = '>'; valuesplit = OriginalValue.Trim().Split(sep); foreach (string value in valuesplit) { if (value.Trim() != "" && !value.Trim().StartsWith("Value") && !value.Trim().StartsWith("/Value")) { ValueToModify = value.Trim(); } } return "<![CDATA[" + OriginalValue.Replace(ValueToModify, NewValue) + "]]>" ; }
Alors que si je décommente la ligne pour afficher sur la console, j'obtiens bien :<value><![CDATA[<Values:boolean type="boolean" xmlns:Values="Values.xsd"><Values:value>!!!!!Valeur Modifié!!!!!</Values:value></Values:boolean>
]]></value>
Je suis un peu perplexe, et je n'ai pas trouvé d'information concernant ce problème sur le net pour l'instant.<![CDATA[<Values:boolean type="boolean" xmlns:Values="Values.xsd"><Values:value>!!!!!Valeur Modifié!!!!!</Values:value></Values:boolean>
]]>
Vais je devoir me passer d'XPath et éditer le fichier comme un fichier texte ???
Cela serait vraiment con
Partager