Lire le fichier XML dans XmlDocument

103

Je suis très nouveau sur C #. J'ai un fichier XML (text.xml). Je veux lire cela XmlDocumentet stocker le flux dans une variable de chaîne.

AJP
la source
1
Merci à vous deux pour votre aide.
AJP

Réponses:

169

Utilisez la XmlDocument.Load()méthode pour charger XML à partir de votre fichier. Ensuite, utilisez la XmlDocument.InnerXmlpropriété pour obtenir une chaîne XML.

XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;
Timur Sadykov
la source
2
XmlDocumentne contient pas de définition pour Load.
Matt Clark
J'ai décliné tous ces éléments car aucun d'entre eux n'a fonctionné. Il s'avère que je développe pour WindowsRT, et le Compact .NET Framework a beaucoup de ces fonctionnalités supprimées. Y compris beaucoup de ceux dont j'ai besoin ... Comme XmlDocument.Load()et et le constructeur StreamReaderStreamReader(filePath)
Matt Clark
11
@MattClark: Je ressens votre douleur - je lutte contre les caprices et les limites de la mucoviscidose depuis deux ans maintenant - mais ce n'est pas une raison de voter contre. Le PO n'a pas spécifié CF, et il n'y a donc aucune raison pour laquelle les répondants prendraient CF en considération.
B. Clay Shannon
18

Si votre version .NET est plus récente que 3.0, vous pouvez essayer d'utiliser à la System.Xml.Linq.XDocumentplace de XmlDocument. Il est plus facile de traiter les données avec XDocument.

Pupper
la source
3
Et voici comment charger un fichier à l'aide de XDocument: stackoverflow.com/questions/670563/linq-to-read-xml
Brian Leeming
6

J'espère que cela ne vous dérange pas Xml.Linq et .net3.5 +

XElement ele = XElement.Load("text.xml");
String aXmlString = ele.toString(SaveOptions.DisableFormatting);

Selon ce qui vous intéresse, vous pouvez probablement ignorer toute la partie var 'string' et simplement utiliser des objets XLinq

Abdul Hfuda
la source
6
XmlDocument doc = new XmlDocument();
   doc.Load("MonFichierXML.xml");

    XmlNode node = doc.SelectSingleNode("Magasin");

    XmlNodeList prop = node.SelectNodes("Items");

    foreach (XmlNode item in prop)
    {
        items Temp = new items();
        Temp.AssignInfo(item);
        lstitems.Add(Temp);
    }
user3626085
la source
1
var doc = new XmlDocument(); 
doc.Loadxml(@"c:\abc.xml");
Ventes Juliano
la source
Notez que la question nécessite également de stocker le contenu XML dans une chaîne.
min
XmlDocument.LoadXml()charge une chaîne XML. Pour charger un fichier XML par nom, utilisez XmlDocument.Load()comme le suggère la réponse acceptée.
François Beaune