Problème Utilisation XmlWriter
Salut à tous,
j'ai écris ce petit bout de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| XmlReader reader = XmlReader.Create("ExportFileEmpty.xml");
reader.ReadToFollowing("Document");
XmlWriter writer = XmlWriter.Create("Export.xml");
writer.WriteNode(reader, true);
writer.Flush();
writer.Close();
XmlDocument document = new XmlDocument();
document.Load("Export.xml");
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToChild("Document", ns);
navigator.MoveToChild("Project",ns);
navigator.MoveToChild("ObjectList", ns);
XmlWriter NewWriter = navigator.InsertAfter();
NewWriter.WriteStartElement("Hmi.Globalization.MultiLingualGraphic");
NewWriter.WriteEndElement();
NewWriter.Flush();
NewWriter.Close(); |
Savez vous pourquoi l'élément "Hmi.Globalization.MultiLingualGraphic" ne s'insère pas après "ObjectList".
Merci.
Quelques explications sup
Je sais, lol, quelques explications pourront peut être apporté d'autres idées :
En fait, je recopie l'ensemble d'un document avec XmlReader et Xmlwriter :
XmlReader reader = XmlReader.Create("ExportFileEmpty.xml");
reader.ReadToFollowing("Document");
XmlWriter writer = XmlWriter.Create("Export.xml");
writer.WriteNode(reader, true);
writer.Flush();
writer.Close();
Ensuite, je cherche à insérer un noeud en fonction de la valeur d'une variable, c'est pourquoi j'utilise :
XmlDocument document = new XmlDocument();
document.Load("Export.xml");
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToChild("Document", ns);
navigator.MoveToChild("Project",ns);
navigator.MoveToChild("ObjectList", ns);
XmlWriter NewWriter = navigator.InsertAfter();
NewWriter.WriteStartElement("Hmi.Globalization.MultiLingualGraphic");
NewWriter.WriteEndElement();
NewWriter.Flush();
NewWriter.Close();
Ceci devrait me permettre :
1. Ouvrir le document créer (utilisation de xmlDocument)
2. Aller me positionner à l'endroit où je veux insérer mon noeud (Utilisation de XPathNavigator)
3. Insérer le noeud (Utilisation de XmlWriter)
De plus, j'ai essayer NewWriter.WriteValue et rien ne change.