Odczytaj plik XML do XmlDocument

103

Jestem bardzo nowy w C #. Mam plik XML (text.xml). Chcę to przeczytać XmlDocumenti zapisać strumień w zmiennej ciągu.

AJP
źródło
1
Dziękuje wam obojgu za waszą pomoc.
AJP

Odpowiedzi:

169

Użyj XmlDocument.Load()metody, aby załadować XML z pliku. Następnie użyj XmlDocument.InnerXmlwłaściwości, aby uzyskać ciąg XML.

XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;
Timur Sadykov
źródło
2
XmlDocumentnie zawiera definicji Load.
Matt Clark
Odrzuciłem wszystkie z nich, ponieważ żaden z nich nie działał. Jak się okazuje, tworzę program dla WindowsRT, a Compact .NET Framework ma wiele z tych funkcji pozbawionych. W tym wiele tych, których potrzebuję ... Takich jak XmlDocument.Load()i i konstruktor StreamReaderStreamReader(filePath)
Matt Clark
11
@MattClark: Czuję twój ból - zmagam się z kaprysami i ograniczeniami CF od dwóch lat - ale to nie jest powód, by głosować przeciw. W PO nie określono FS, więc nie ma powodu, dla którego respondenci mieliby brać pod uwagę FS.
B. Clay Shannon
18

Jeśli Twoja wersja .NET jest nowsza niż 3.0, możesz spróbować użyć System.Xml.Linq.XDocumentzamiast XmlDocument. Łatwiej jest przetwarzać dane z XDocument.

Pupper
źródło
3
A oto jak załadować plik za pomocą XDocument: stackoverflow.com/questions/670563/linq-to-read-xml
Brian Leeming
6

Mam nadzieję, że nie masz nic przeciwko Xml.Linq i .net3.5 +

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

W zależności od tego, co Cię interesuje, prawdopodobnie możesz pominąć całą część zmiennej „string” i po prostu użyć obiektów XLinq

Abdul Hfuda
źródło
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
źródło
1
var doc = new XmlDocument(); 
doc.Loadxml(@"c:\abc.xml");
Juliano Sales
źródło
Zwróć uwagę, że pytanie wymaga również przechowywania zawartości XML w ciągu.
min
XmlDocument.LoadXml()ładuje ciąg XML. Aby załadować plik XML według nazwy, użyj XmlDocument.Load()zgodnie z sugestią zaakceptowanej odpowiedzi.
François Beaune