Создание и сохранение xml - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Не думал, что это окажется настолько сложно, перерыл кучу тем, но так и не нашел ответа для моего случая. Суть в чем: на сайте банка имеется сервис для получения курсов валют в xml. Их там большое количество, но мне нужно только 4 курса, для чего был реализован следующий код:
Листинг программы
  1. private static void Main(string[] args)
  2. {
  3. var ids = new[] { 292, 145, 293, 298 };
  4. var date = DateTime.Now.Date.ToString("MM-dd-yyyy").Replace("-", "/");
  5. var data = GetData(date);
  6. var res = GetExchange(ids, data);
  7. foreach (var currate in res)
  8. {
  9. Console.WriteLine(currate);
  10. }
  11. Console.ReadKey();
  12. }
  13. public static Uri GetUri(string date)
  14. {
  15. var ub = new UriBuilder("http://www.nbrb.by/Services/XmlExRates.aspx");
  16. // ub.Query = "ondate=" +date;
  17. return ub.Uri;
  18. }
  19. public static string GetData(string date)
  20. {
  21. var uri = GetUri(date);
  22. using (var wc = new WebClient())
  23. using (var stream = wc.OpenRead(uri.ToString()))
  24. using (var reader = new StreamReader(stream))
  25. {
  26. return reader.ReadToEnd();
  27. }
  28. }
  29. public static IEnumerable<string> GetExchange(int[] ids, string data)
  30. {
  31. var xDoc = XElement.Parse(data);
  32. foreach (var e in xDoc.Elements("Currency"))
  33. {
  34. if (ids.Contains(Convert.ToInt32(e.Attribute("Id").Value)))
  35. {
  36. yield return e.ToString();
  37. }
  38. }
  39. }
Далее нужно сохранить все полученные данные (они видны в консоли) в файл xml, предварительно обернув это в шапку <DailyExRates Date="текущая дата"> </DailyExRates> где, собственно, и остановились мои успехи... могу предположить, что я сделал дурную работу,и достаточно было создать конечный файл и передавать в него значения атрибутов. а может я лошара, и какую-то ерунду несу) если кто поможет с реализацией, буду очень рад и благодарен)

Решение задачи: «Создание и сохранение xml»

textual
Листинг программы
  1. var ids = new[] { "292", "145", "293", "298" };
  2. string url = string.Format("http://www.nbrb.by/Services/XmlExRates.aspx?ondate={0}", DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture));
  3. XDocument ratesDoc = XDocument.Load(url);
  4. var toDelete = ratesDoc.Root.Elements().Where(x => !ids.Contains(x.Attribute("Id").Value));
  5. toDelete.Remove();
  6. ratesDoc.Save("rates.xml");

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы