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.


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;

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


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


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);
    }

1
var doc = new XmlDocument(); 
doc.Loadxml(@"c:\abc.xml");

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.