XML-Datei in XmlDocument lesen

103

Ich bin sehr neu in C #. Ich habe eine XML-Datei (text.xml). Ich möchte das einlesen XmlDocumentund den Stream in einer Stringvariablen speichern.

AJP
quelle
1
Vielen Dank für Ihre Hilfe.
AJP

Antworten:

169

Verwenden Sie die XmlDocument.Load()Methode, um XML aus Ihrer Datei zu laden. Verwenden Sie dann die XmlDocument.InnerXmlEigenschaft, um die XML-Zeichenfolge abzurufen.

XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;
Timur Sadykov
quelle
2
XmlDocumententhält keine Definition für Load.
Matt Clark
Ich habe all dies abgelehnt, weil keines von ihnen funktioniert hat. Wie sich herausstellt, entwickle ich für Windows RT, und in Compact .NET Framework wurden viele dieser Funktionen entfernt. Einschließlich vieler von denen, die ich brauche ... Wie XmlDocument.Load()und und der StreamReader-KonstruktorStreamReader(filePath)
Matt Clark
11
@MattClark: Ich fühle deinen Schmerz - ich habe seit zwei Jahren mit den Unwägbarkeiten und Einschränkungen von CF zu kämpfen - aber das ist kein Grund, abzustimmen. Das OP hat keine CF angegeben, und daher gibt es keinen Grund, warum die Antwortenden CF berücksichtigen würden.
B. Clay Shannon
17

Wenn Ihre .NET-Version neuer als 3.0 ist, können Sie versuchen, System.Xml.Linq.XDocumentanstelle von XmlDocument. Es ist einfacher, Daten mit zu verarbeiten XDocument.

Pupper
quelle
3
Und so laden Sie eine Datei mit XDocument: stackoverflow.com/questions/670563/linq-to-read-xml
Brian Leeming
6

Ich hoffe, es macht Ihnen nichts aus Xml.Linq und .net3.5 +

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

Je nachdem, woran Sie interessiert sind, können Sie wahrscheinlich den gesamten var-Teil 'string' überspringen und einfach XLinq-Objekte verwenden

Abdul Hfuda
quelle
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
quelle
1
var doc = new XmlDocument(); 
doc.Loadxml(@"c:\abc.xml");
Juliano Vertrieb
quelle
Beachten Sie, dass für die Frage auch der XML-Inhalt in einer Zeichenfolge gespeichert werden muss.
Minuten
XmlDocument.LoadXml()Lädt eine XML-Zeichenfolge. Verwenden Sie XmlDocument.Load()zum Laden einer XML-Datei nach Namen, wie in der akzeptierten Antwort angegeben.
François Beaune