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

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

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

Добрый день. Не думал, что это окажется настолько сложно, перерыл кучу тем, но так и не нашел ответа для моего случая. Суть в чем: на сайте банка имеется сервис для получения курсов валют в xml. Их там большое количество, но мне нужно только 4 курса, для чего был реализован следующий код:
 private static void Main(string[] args)
        {
            var ids = new[] { 292, 145, 293, 298 };
            var date = DateTime.Now.Date.ToString("MM-dd-yyyy").Replace("-", "/");
            var data = GetData(date);
            var res = GetExchange(ids, data);
            foreach (var currate in res)
            {
                Console.WriteLine(currate);             
            }
            Console.ReadKey();
        }
 
        public static Uri GetUri(string date)
        {
            var ub = new UriBuilder("http://www.nbrb.by/Services/XmlExRates.aspx");
            // ub.Query = "ondate=" +date;
            return ub.Uri;
        }
        public static string GetData(string date)
        {
            var uri = GetUri(date);
            using (var wc = new WebClient())
            using (var stream = wc.OpenRead(uri.ToString()))
            using (var reader = new StreamReader(stream))
            {
                return reader.ReadToEnd();
            }
        }
        public static IEnumerable<string> GetExchange(int[] ids, string data)
        {
            var xDoc = XElement.Parse(data);
            foreach (var e in xDoc.Elements("Currency"))
            {
                if (ids.Contains(Convert.ToInt32(e.Attribute("Id").Value)))
                {
                    yield return e.ToString();
                }
            }
        }
Далее нужно сохранить все полученные данные (они видны в консоли) в файл xml, предварительно обернув это в шапку <DailyExRates Date="текущая дата"> </DailyExRates> где, собственно, и остановились мои успехи... могу предположить, что я сделал дурную работу,и достаточно было создать конечный файл и передавать в него значения атрибутов. а может я лошара, и какую-то ерунду несу) если кто поможет с реализацией, буду очень рад и благодарен)

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

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

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


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

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

7   голосов , оценка 3.571 из 5
Похожие ответы