J'ai besoin de charger xml à partir d'un fichier dans un XmlDocument. Le problème est que le fichier contient des espaces blancs. (Je n'ai aucun contrôle sur le système qui produit le fichier.) Existe-t-il un moyen propre/facile d'ignorer ou de supprimer ces caractères?Comment ignorer les espaces blancs dans un fichier XML?
string SamplelRequestFile = @"C:\example.xml";
XmlDocument docXML = new XmlDocument();
XmlTextReader xReader = new XmlTextReader(SamplelRequestFile);
XmlReaderSettings ReaderSettings = new XmlReaderSettings();
ReaderSettings.XmlResolver = null;
ReaderSettings.ProhibitDtd = false;
docXML.Load(xReader);
exemple.xml (notez les espaces principaux)
<?xml version="1.0" ?>
<myRoot>
<someElement />
</myRoot>
Cela fonctionnera, mais seulement pour les documents plus petits. Si vous commencez à traiter de très gros documents, vous rencontrerez des problèmes. Une solution possible consiste à créer un nouveau type de flux lit le fichier XML et refuse simplement de renvoyer des caractères jusqu'à ce qu'il trouve le premier caractère non-espace dans le flux. –
Une autre option consiste à essayer de traiter le document comme un fragment XML, le XmlTextReader peut être plus indulgent: http://msdn.microsoft.com/en-us/library/cakk7ha0.aspx –
Cela ne fonctionnera que si le fichier XML est codé en UTF-8 car ReadToEnd lit en UTF-8 par défaut. – Daniel