Прочитайте 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: Я відчуваю ваш біль - я два роки боюся з капризами та обмеженнями МВ - але це не є причиною для того, щоб заявляти про це. В ОП не було вказано МВ, і тому немає жодної причини відповідачі брати до уваги МВ.
Б. Клей Шеннон


6

Сподіваємось, ви не проти Xml.Linq та .net3.5 +

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

Залежно від того, що вас цікавить, ви, ймовірно, можете пропустити всю "рядкову" частину вару і просто використовувати об'єкти 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()як підказує прийнята відповідь.
Франсуа Бон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.