Bonjour à tous.
Je m'arrache les cheveux depuis un petit moment sur un truc tout con.
A partir d'un fichier xml pré-existant ayant la structure suivante :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <root> <child1>value1</child1> <child2>value2</child2> <child4>value4</child4> <child5>value5</child5> </root>
Je voudrais insérer une node <child3>value3</child3> entre child2 et child4 pour obtenir ça :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <root> <child1>value1</child1> <child2>value2</child2> <child3>value3</child3> <child4>value4</child4> <child5>value5</child5> </root>
Mon problème, c'est que la bibliothèque System.Xml propose les méthodes qui ne génèrent pas les indentations et retours à la ligne adéquat.
Avec le code suivant :
Je me retrouve avec ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 XmlDocument docXML = new XmlDocument(); docXML.Load(fileXML); XmlNode root = docXML.DocumentElement; XmlNode child2Node = root.SelectSingleNode("child2"); XmlNode child3Node = docXML.CreateElement("child3"); child3Node.InnerText = value3; root.InsertAfter(child3Node, child2Node);
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <root> <child1>value1</child1> <child2>value2</child2><child3>value3</child3> <child4>value4</child4> <child5>value5</child5> </root>
De la même manière, avec ça :
Je me retrouve avec ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 XmlDocument docXML = new XmlDocument(); docXML.Load(fileXML); XmlNode root = docXML.DocumentElement; XmlNode child4Node = root.SelectSingleNode("child4"); XmlNode child3Node = docXML.CreateElement("child3"); child3Node.InnerText = value3; root.InsertBefore(child3Node, child4Node);
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <root> <child1>value1</child1> <child2>value2</child2> <child3>value3</child3><child4>value4</child4> <child5>value5</child5> </root>
Je retrouve le même problème avec la méthode AppendChild si j'essaie d'insérer ma node sans me soucier de sa position précise :
ce qui donne ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 XmlDocument docXML = new XmlDocument(); docXML.Load(fileXML); XmlNode root = docXML.DocumentElement; XmlNode child3Node = docXML.CreateElement("child3"); child3Node.InnerText = value3; root.AppendChild(child3Node);
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <root> <child1>value1</child1> <child2>value2</child2> <child4>value4</child4> <child5>value5</child5> <child3>value3</child3></root>
Y a-t'il quelque chose que je n'ai pas pris en compte?
Merci de votre aide.
Partager