.NET 4.x Парсинг данных с использованием инъекций - C#

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

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

Всем привет! В учебных целях мне поставлена задача: по нажатию кнопки в оконном приложении, оно должно зайти на сайт ЦБР и обновить данные о ценах на драгоценные металлы. Ссылка на страничку: http://cbr.ru/hd_base/?PrtId=metall_base_new На данной страничке необходимо произвести инъекцию input'а начальной (02.07.2008) и конечной (текущий день, на момент обновления) даты, а затем полученные данные загрузить в локальную базу данных. Пожалуйста, скиньте какие-нибудь мануалы (желательно с примерами) по данной теме. Заранее благодарен за помощь!

Решение задачи: «.NET 4.x Парсинг данных с использованием инъекций»

textual
Листинг программы
using System;
using System.IO;
using System.Net;
using System.Xml.Serialization;
using System.Collections.Generic;
 
namespace GetPreciousMetals
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Пример получения динамики котировок драгоценных металлов:");
            using (StreamWriter sw = new StreamWriter(@"C:\root.xml"))
                sw.WriteLine(getXMLFile("http://cbr.ru/scripts/xml_metall.asp", "01.04.2017", "07.04.2017"));
            using (StreamReader sr = new StreamReader(@"C:\root.xml"))
            {
                XmlSerializer xml = new XmlSerializer(typeof(Metall));
                var root = (Metall)xml.Deserialize(sr);
                Console.WriteLine("\nДата\t\tЗолото\t\tСеребро\t\tПлатина\t\tПалладий");
                for (int i = 0; i < root.Record.Count; i+=4)
                {
                    Console.WriteLine(root.Record[i].Date + "\t" + root.Record[i].Buy+"\t\t"+root.Record[i+1].Buy+"\t\t" + root.Record[i + 2].Buy+"\t\t" + root.Record[i + 3].Buy);
                }
            }
            Console.ReadKey(true);
        }
        static string getXMLFile(string url, string date_req1, string date_req2)
        {
            WebClient webClient = new WebClient();
            return webClient.DownloadString(url + "?date_req1=" + date_req1 + "&date_req2=" + date_req2);
        }
    }
    [XmlRoot(ElementName = "Record")]
    public class Record
    {
        [XmlElement(ElementName = "Buy")]
        public string Buy { get; set; }
        [XmlElement(ElementName = "Sell")]
        public string Sell { get; set; }
        [XmlAttribute(AttributeName = "Date")]
        public string Date { get; set; }
        [XmlAttribute(AttributeName = "Code")]
        public string Code { get; set; }
    }
    [XmlRoot(ElementName = "Metall")]
    public class Metall
    {
        [XmlElement(ElementName = "Record")]
        public List<Record> Record { get; set; }
        [XmlAttribute(AttributeName = "FromDate")]
        public string FromDate { get; set; }
        [XmlAttribute(AttributeName = "ToDate")]
        public string ToDate { get; set; }
        [XmlAttribute(AttributeName = "name")]
        public string Name { get; set; }
    }
}

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


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

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

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