Создайте файл XML, используя C # - PullRequest
1 голос
/ 13 сентября 2009

Пожалуйста, предложите мне способ сохранить файл XML в текущий каталог установки приложения, созданного с использованием C #.

Ответы [ 4 ]

8 голосов
/ 13 сентября 2009
  1. Создание файла XML. Самый простой способ - создать и заполнить объект XmlDocument или XDocument.

  2. Сохранить в каталоге установки: используйте

   string path = System.IO.Path.GetDirectoryName(Application.ExecutablePath);  
   string file = System.IO.Path.Combine(pathm, "myfile.xml");

Но вы же знаете, что папка приложения - не лучшее место для хранения файла, верно?

Edit:

В некоторых комментариях упоминается изолированное хранилище, но это излишне. Лучший способ хранения данных - использовать соответствующий DataPath. Это отличается в разных версиях Windows, но это всегда работает:

string path = 
    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

В перечислении Environment.SpecialFolder есть несколько других значений, посмотрите.

7 голосов
/ 13 сентября 2009

Использование XDocument и LINQ:

XDocument myXml = new XDocument(new XElement("Node 1", new XElement("Node 2")));
myXml.Save(Directory.GetCurrentDirectory() + "/myXML.xml");

или

XDocument myXml = new XDocument(new XElement("Node 1", new XElement("Node 2")));
myXml.Save(Path.GetDirectoryName(Application.ExecutablePath) + "/myXML.xml");
0 голосов
/ 28 октября 2009

И, после того как вы все перепробовали и все еще чешете голову, задаетесь вопросом, почему это не работает ...

  1. Убедитесь, что папка, которую вы хотите сохранить в ALLOWS. Запись под учетной записью, под которой работает веб-служба, или пользователем (в зависимости от того, как настроена безопасность); это должно быть сделано на уровне NTFS. В предыдущих предложениях говорилось, что было бы плохо писать в папке приложения. Нет, это не было бы плохо, было бы невероятно глупо писать там, а не просто плохо. Итак, выберите другое место, чтобы сохранить данные. В идеале, на другом физическом томе, или, что еще лучше: отправьте файл XML в другое приложение на другом сервере, единственное место которого сохраняет эти данные.
  2. Предполагая, что вы знаете, как создать XML-документ в C # (строки не таковы - используйте подходящие методы для создания XmlDocument - например, используя элементы, узлы и атрибуты), вы можете использовать метод .Save
  3. Почему бы не использовать строки ??? Потому что вы будете тратить больше времени на отладку «правильно сформированных XML» ошибок, чем на решение вашей реальной проблемы. Люди паршивые в создании правильно сформированного XML. Машины довольно хороши в этом.
0 голосов
/ 13 сентября 2009

StringBuilders и HttpUtility.HtmlEncode обычно работают достаточно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...