J'ai besoin d'insérer des XElement contenant un nouvel enregistrement <Element> en passant par un XmlWriter (pas question de charger tout le document en mémoire)
Je n'ai pas trouvé de méthode pour dire au writer d'ajouter un noeud dans un noeud existant...
titeoe
Messages postés433Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention 4 décembre 20091 15 févr. 2009 à 21:58
Salut
Personellement, je passerai par un XmlDocument.
Ensuite tu fais une tite Xpath pour trouver le noeud a enrichir et ensuite un tit coup de XmlNode.ChildNodes.Add(new XmlNode());
Et a la fin, XmlDocument.Save() pour fermer ton fichier.
titeoe
Messages postés433Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention 4 décembre 20091 15 févr. 2009 à 22:02
oups, désolé, je n'avais pas lu la partie ou tu dis que tu ne veux pas tout charger en mémoire.
Dans ce cas, je pense qu'il vaudrait mieux que tu crée un fichier XML vide.
Ensuite tu fais une lecture séquentielle de ton fichier source. Quand tu trouve l'endroit ou tu veux mettre ton fragment, tu l'insere. Puis ton continue à transférer le reste de ton XMl source dans ton Xml.
A la fin, tu supprime le fichier source et tu renomme le nouveau.
Comme ça, pas de grosse charge mémoire. Il est gris ton fichier à mettre à jour ?
PtitRun
Messages postés6Date d'inscriptionsamedi 27 septembre 2008StatutMembreDernière intervention27 octobre 2009 15 févr. 2009 à 22:14
Salut !
Merci pour la réponse !
Pour la taille du fichier, je ne peux pas la connaitre à l'avance, mais il pourra être gros (surtout pour la quantité de mémoire présente sur le périphérique qui l'utilisera !)