Прочитать XML-файл в XmlDocument


103

Я новичок в C #. У меня есть файл XML (text.xml). Я хочу прочитать это XmlDocumentи сохранить поток в строковой переменной.


1
спасибо вам обоим за вашу помощь.
AJP

Ответы:


169

Используйте XmlDocument.Load()метод для загрузки XML из вашего файла. Затем используйте XmlDocument.InnerXmlсвойство, чтобы получить строку XML.

XmlDocument doc = new XmlDocument();
doc.Load("path to your file");
string xmlcontents = doc.InnerXml;

2
XmlDocumentне содержит определения для Load.
Мэтт Кларк

Я проголосовал против всех из них, потому что ни один из них не работал. Как оказалось, я разрабатываю для WindowsRT, а в Compact .NET Framework многие из этих функций исключены. В том числе многие из них, которые мне нужны ... Например, XmlDocument.Load()и и конструктор StreamReaderStreamReader(filePath)
Мэтт Кларк

11
@MattClark: Я чувствую вашу боль - я уже два года борюсь с капризами и ограничениями CF, но это не повод для отрицательного голоса. OP не указал CF, и поэтому нет причин, по которым ответчики будут учитывать CF.
Б. Клей Шеннон


6

Надеюсь, вы не против Xml.Linq и .net3.5 +

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

В зависимости от того, что вас интересует, вы, вероятно, можете пропустить всю часть var 'string' и просто использовать объекты 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");

Обратите внимание, что вопрос также требует сохранения содержимого XML в строке.
минут

XmlDocument.LoadXml()загружает строку XML. Чтобы загрузить файл XML по имени, используйте, XmlDocument.Load()как предлагает принятый ответ.
François Beaune
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.