XmlTextWriterw = newXmlTextWriter(m_ProjectName + ".xml", Encoding.UTF8);
w.Indentation = 1;
w.IndentChar = '\t';
w.Formatting = Formatting.Indented;
doc.WriteTo(w); // Ou doc.WriteContentTo(w), ca donne le même problème.
Pendant cette écriture, aucune erreure/exception n'est lancée. Cependant, quand j'ouvre mon fichier, il n'est pas complet.
Voici un petit extrait de ce que ca donne. Tout ce qui est en violet est manquant par rapport à l'original.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl" ?>
http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project.xsd">
<config>
[Je coupe un peu car le fichier est très long et il contient des données que je n'ai pas le droit de divulguer, cependant, j'ai vérifier, et revérifier, aucun problème de syntaxe ici. Et tout est conforme au XSD.]
</map>
<fichiers xmlns:xi="http://www.w3.org/2001/XInclude">
/>
</fichiers>
La où est encore plus étrange, c'est que pour tenter de solutionner le problème, j'ai écrit ma propre fonction WriteTo(). Elle n'svait pas pour but d'être parfaite et de remplacer la fonction originale, mais plutot de pouvoir suivre l'écriture des noeuds en pas à pas. Résultat : Aucune cassure dans l'arbre des noeuds, cependant, le XmlTextWriter continu de s'arrêter d'écrire sans retourner la moindre exception.
Encore une précision, le morceau manquant n'est pas toujours le même. Il semble varier au fil des compilations. Cependant, le writer semble s'arreter toujours à peu pres au même endroit (sur fichier4.xml par exemple). Il s'est déjà également arrêter beaucoup plus haut dans le document.
Voici les test que j'ai effectuer et qui ont retourner le même problème :
1) Plus aucune modification de noeud.
2) Lecture d'un document et écriture de celui-ci dans un autre document aussitot après.
3) Lecture/Ecriture de documents plus petits (30ko au lieu de 130Mo)
4) Changement du formattage (indented ou non)
5) Methode WriteTo et WriteContentTo utilisé sur un XmlDocument et sur un XmlNode
6) Changement d'encodage (ASCII / UTF-8)
Voilà, c'est à peu pres tout. Je ne comprend pas du tout ce qui peut provoquer cet arrêt de l'écriture.
Le plus gros problème c'est que c'est assez urgent, car je dois présenter mon travail à mon boss, si je peux pas enregistrer mon XML, alors l'application cible ne pourra pas le lire et afficher mes modifications.
Merci de bien vouloir me sauver la vie.
Le travail c'est la santé, ne rien faire c'est la préservé !!!
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 14 juil. 2007 à 09:49
Salut,
Ouch, un DOM sur des fichiers de 130Mo ça doit faire mal côté ressources.
Petite remarque sur ton façon de batir les chemins : regarde du côté de Path.Combine :-)
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 14 juil. 2007 à 10:05
Salut,
Oui, effectivement c'est assez lourd, mais j'ai pas vraiment le choix, c'est pas moi qui choisit le format des données ...
Merci de a remarque, j'irai voir ce Path.Combine lundi.
Le travail c'est la santé, ne rien faire c'est la préservé !!!