Будет ли следующее загружать мой XML-файл

#c# #xml #visual-studio-2010

#c# #xml #visual-studio-2010

Вопрос:

У меня возникла проблема со следующим — похоже, он не загружает мой XML-файл. Я хочу загрузить файл, а затем использовать XMLNodeLlist для итерации по нему и сохранения моих значений. XML-файл находится в моем решении Visual Studio 2010. Есть ли что-то, чего мне не хватает в пути?

 XmlDocument xml = new XmlDocument();

public Test()
{

    xml.LoadXml(@"C:UserstestuserDesktopTestWebsiteTestData.xml");
   ...more code
 

Ответ №1:

XmlDocument.loadXML(stirng xml) ожидает не путь к файлу, а фактическую строку xml. Вы могли бы использовать XmlDocument.Загрузите () и передайте ему поток файлов для вашего документа или путь к файлу:

 XmlDocument xml = new XmlDocument();
xml.Load(@"C:UserstestuserDesktopTestWebsiteTestData.xml");
// or
xml.Load(File.OpenRead(@"C:UserstestuserDesktopTestWebsiteTestData.xml"));
 

Еще лучше, чем это, было бы использовать новый объект XDocument, который имеет метод load, который работает непосредственно с путем к файлу, это предпочтительный способ взаимодействия с Xml в более поздних версиях .NET, и я бы рекомендовал использовать этот подход:

 XDocument doc1 = XDocument.Load(@"C:UserstestuserDesktopTestWebsiteTestData.xml", LoadOptions.None);
 

Комментарии:

1. я думал, что это был тот случай, когда Энди еще немного погуглил:( — какой лучший способ загрузить в файл XML, Энди, ты знаешь?

2. Вы также можете передать путь непосредственно для загрузки

3. @KOL — Я бы действительно предложил использовать XDocument сейчас, поскольку это действительно предпочтительный метод работы с XML в .NET сейчас, а также дает вам доступ к множеству преимуществ Linq.

4. @ThomasLevesque — абсолютно верно, я исправил ответ.

5. @AndyRose — Спасибо — какова директива using для этого? Система. Xml не находит его для меня?