Обменные курсы в C#

// Получить символы валюты.
private void Form1_Load(object sender, EventArgs e)
{
    string url = "http://finance.yahoo.com/webservice/" +
        "v1/symbols/allcurrencies/quote?format=xml";
    try
    {
        // Загружаем данные.
        XmlDocument doc = new XmlDocument();
        doc.Load(url);

        // Обработать узлы ресурсов.
        XmlNode root = doc.DocumentElement;
        string xquery = "descendant::resource[@classname='Quote']";
        foreach (XmlNode node in root.SelectNodes(xquery))
        {
            const string name_query =
                "descendant::field[@name='name']";
            const string price_query =
                "descendant::field[@name='price']";
            string name =
                node.SelectSingleNode(name_query).InnerText;
            string price =
                node.SelectSingleNode(price_query).InnerText;
            decimal inverse = 1m / decimal.Parse(price);

            ListViewItem item = lvwPrices.Items.Add(name);
            item.SubItems.Add(price);
            item.SubItems.Add(inverse.ToString("f6"));
        }

        // Сортировать.
        lvwPrices.Sorting = SortOrder.Ascending;
        lvwPrices.FullRowSelect = true;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Read Error",
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    }
}

Этот код загружает XmlDocument из следующего URL-адреса.

http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format=xml

Вы можете выполнить этот URL-адрес в своем браузере, чтобы увидеть, как выглядит результат. В следующем тексте показано, как выглядит запись, в которой хранятся курсы обмена валют.


  USD/KRW
  1169.650024
  KRW=X
  1480609630
  currency
  2016-12-01T16:27:10+0000
  0

Далее код находит корневой узел документа и использует его метод SelectNodes, чтобы составить список узлов, имеющих тип тега resource и имеющих поле с именем classname со значением Цитата. Программа использует цикл while для итерации через результирующие узлы.

Внутри цикла код получает дочерние узлы Quote типа field с именем name и price , Он сохраняет свое текстовое содержимое в переменных name и price.

Я думаю, что названия курсов обмена валюты немного вводят в заблуждение. Например, USD / JPY - это обменный курс между долларами США и японской йеной. В настоящее время цена составляет 114,528, что означает, что один доллар США стоит 114,528 JPY. Но математически название USD / JPY означает «доллары за иену», а не «иена за доллар».

Чтобы сделать обмены немного легче читать, программа анализирует цену и инвертирует ее, чтобы вы могли видеть количество долларов за иен и количество йены за доллар.

Цикл отображает имя, цену и инвертированную цену в элементе ListView lvwPrices.

Источник: http://csharphelper.com/blog/2016/12/get-currency-exchange-rates-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector