Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Вытянуть данные из XML

Ответить
Настройки темы
.NET - [решено] Вытянуть данные из XML

Аватара для virus8

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


Добрый день форумчане! Посоветуйте пожалуйста по поводу одной вещи. Как вытянуть данные их xml файла(http://bank-ua.com/export/currrate.xml
Вид xml файла такой
читать дальше »
<?xml version="1.0" encoding="windows-1251" ?>
- <chapter>
- <item>
<date>2013-03-11</date>
<code>036</code>
<char3>AUD</char3>
<size>100</size>
<name>австралійських доларів</name>
<rate>819.7787</rate>
<change>-2.5477</change>
</item>
- <item>
<date>2013-03-11</date>
<code>031</code>
<char3>AZM</char3>
<size>100</size>
<name>азербайджанських манатів</name>
<rate>1018.3463</rate>
<change>0.1297</change>
</item>
- <item>
<date>2013-03-11</date>
<code>826</code>
<char3>GBP</char3>
<size>100</size>
<name>англійських фунтів стерлінгів</name>
<rate>1202.1842</rate>
<change>-3.1461</change>
</item>
- <item>
<date>2013-03-11</date>
<code>974</code>
<char3>BYR</char3>
<size>10</size>
<name>білоруських рублів</name>
<rate>0.0093</rate>
<change>0</change>
</item>
- <item>
<date>2013-03-11</date>
<code>208</code>
<char3>DKK</char3>
<size>100</size>
<name>датських крон</name>
<rate>139.4963</rate>
<change>-0.2493</change>
</item>
- <item>
<date>2013-03-11</date>
<code>840</code>
<char3>USD</char3>
<size>100</size>
<name>доларів США</name>
<rate>799.3000</rate>
<change>0</change>
</item>
- <item>
<date>2013-03-11</date>
<code>978</code>
<char3>EUR</char3>
<size>100</size>
<name>ЄВРО</name>
<rate>1039.8893</rate>
<change>-1.9983</change>
</item>
- <item>
<date>2013-03-11</date>
<code>352</code>
<char3>ISK</char3>
<size>100</size>
<name>ісландських крон</name>
<rate>6.3745</rate>
<change>-0.0194</change>
</item>
- <item>
<date>2013-03-11</date>
<code>398</code>
<char3>KZT</char3>
<size>100</size>
<name>казахстанських тенге</name>
<rate>5.3011</rate>
<change>-0.0035</change>
</item>
- <item>
<date>2013-03-11</date>
<code>124</code>
<char3>CAD</char3>
<size>100</size>
<name>канадських доларів</name>
<rate>774.7648</rate>
<change>-2.2993</change>
</item>
- <item>
<date>2013-03-11</date>
<code>428</code>
<char3>LVL</char3>
<size>100</size>
<name>латвійських латів</name>
<rate>1484.4958</rate>
<change>-2.2159</change>
</item>
- <item>
<date>2013-03-11</date>
<code>440</code>
<char3>LTL</char3>
<size>100</size>
<name>литовських літів</name>
<rate>301.1728</rate>
<change>-0.5787</change>
</item>
- <item>
<date>2013-03-11</date>
<code>498</code>
<char3>MDL</char3>
<size>100</size>
<name>молдовських леїв</name>
<rate>65.1214</rate>
<change>-0.0791</change>
</item>
- <item>
<date>2013-03-11</date>
<code>578</code>
<char3>NOK</char3>
<size>100</size>
<name>норвезьких крон</name>
<rate>140.2129</rate>
<change>-0.1087</change>
</item>
- <item>
<date>2013-03-11</date>
<code>985</code>
<char3>PLN</char3>
<size>100</size>
<name>польських злотих</name>
<rate>250.5033</rate>
<change>-0.5842</change>
</item>
- <item>
<date>2013-03-11</date>
<code>643</code>
<char3>RUB</char3>
<size>10</size>
<name>російських рублів</name>
<rate>2.5983</rate>
<change>-0.012</change>
</item>
- <item>
<date>2013-03-11</date>
<code>702</code>
<char3>SGD</char3>
<size>100</size>
<name>сінгапурських доларів</name>
<rate>640.7599</rate>
<change>-0.6385</change>
</item>
- <item>
<date>2013-03-11</date>
<code>960</code>
<char3>XDR</char3>
<size>100</size>
<name>СПЗ</name>
<rate>1203.3772</rate>
<change>-2.5691</change>
</item>
- <item>
<date>2013-03-11</date>
<code>792</code>
<char3>TRL</char3>
<size>100</size>
<name>турецьких лір</name>
<rate>444.2642</rate>
<change>-1.6539</change>
</item>
- <item>
<date>2013-03-11</date>
<code>795</code>
<char3>TMM</char3>
<size>100</size>
<name>туркменських манатів</name>
<rate>280.4561</rate>
<change>0</change>
</item>
- <item>
<date>2013-03-11</date>
<code>348</code>
<char3>HUF</char3>
<size>1000</size>
<name>угорських форинтів</name>
<rate>34.7208</rate>
<change>-0.1775</change>
</item>
- <item>
<date>2013-03-11</date>
<code>860</code>
<char3>UZS</char3>
<size>100</size>
<name>узбецьких сумів</name>
<rate>0.3945</rate>
<change>0</change>
</item>
- <item>
<date>2013-03-11</date>
<code>203</code>
<char3>CZK</char3>
<size>100</size>
<name>чеських крон</name>
<rate>40.7640</rate>
<change>0.0095</change>
</item>
- <item>
<date>2013-03-11</date>
<code>752</code>
<char3>SEK</char3>
<size>100</size>
<name>шведських крон</name>
<rate>125.3785</rate>
<change>0.0899</change>
</item>
- <item>
<date>2013-03-11</date>
<code>756</code>
<char3>CHF</char3>
<size>100</size>
<name>швейцарських франків</name>
<rate>844.2030</rate>
<change>-2.7912</change>
</item>
- <item>
<date>2013-03-11</date>
<code>156</code>
<char3>CNY</char3>
<size>100</size>
<name>юанів женьміньбі (Китай)</name>
<rate>128.4988</rate>
<change>-0.0246</change>
</item>
- <item>
<date>2013-03-11</date>
<code>392</code>
<char3>JPY</char3>
<size>1000</size>
<name>японських єн</name>
<rate>84.6815</rate>
<change>-0.8242</change>
</item>
</chapter>


допустим мне из этих строк
<name>доларів США</name>
<rate>799.3000</rate>
нужно вытащить 799.300 и положить ее в double или string.

Пытался сделать вот по этому примеру
http://www.intmain.ru/parser-usd.html
но что-то не получается

Отправлено: 22:21, 10-03-2013

 

Аватара для ViRTaCe

Пользователь


Сообщения: 139
Благодарности: 11

Профиль | Отправить PM | Цитировать


Linq to XML самый лучший вариант.

-------
Кривые руки исправляются опытом.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:29, 11-03-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для virus8

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


Все справился, спасибо VIRTaCe.
Вот код кому нужен
Код: Выделить весь код
string url = http://bank-ua.com/export/currrate.xml;
private void z_XML()
        {
            //читаем данные из файла
            XmlDocument xd = new XmlDocument();
            xd.Load(url);
            XmlNodeList list = xd.GetElementsByTagName("item");

            //переменная для записи искомого
            string Rate = "";


            for (int i = 0; i < list.Count; i++)
            {
                XmlElement code = (XmlElement)xd.GetElementsByTagName("code")[i];
                 XmlElement rate = (XmlElement)xd.GetElementsByTagName("rate")[i];
                string pid = "840";

                //if (code.GetAttribute("code") == pid)
                if(code.Name == "code" && code.InnerText == pid)
                {
                    Rate = rate.InnerText;
                }
                
            }
            //вывод в richtextbox для проверки себе выводил
            richTextBox1.Text = Rate;

Отправлено: 21:39, 11-03-2013 | #3


Аватара для virus8

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


Народ тут еще один вопрос по теме из последнего кода переменная
string Rate как её конвертнуть в double???
convert.todouble и double.parse не прокатуют - выдают ошибку, что то типа несовместимые данные.

Отправлено: 00:00, 12-03-2013 | #4


Аватара для ViRTaCe

Пользователь


Сообщения: 139
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата virus8:
convert.todouble и double.parse не прокатуют - выдают ошибку, что то типа несовместимые данные. »
Возможно потому, что вместо точки - запятая, или наоборот (в зависимости от региональных настроек).

-------
Кривые руки исправляются опытом.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:31, 12-03-2013 | #5


Аватара для virus8

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


Все спасибо большое за направление - куда думать)))
код
Код: Выделить весь код
Char separator = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyDecimalSeparator[0];
String Source = USD.Replace('.', separator);
d_usd = Convert.ToDecimal(Source);

Последний раз редактировалось virus8, 12-03-2013 в 01:10. Причина: разобрался


Отправлено: 00:49, 12-03-2013 | #6


Аватара для ViRTaCe

Пользователь


Сообщения: 139
Благодарности: 11

Профиль | Отправить PM | Цитировать


Цитата virus8:
а как это можно поправить?? »
Ну если проблема действительно в этом, то можно найти и заменить на нужный символ. Можно простым циклом, либо регуляркой.

-------
Кривые руки исправляются опытом.


Отправлено: 01:08, 12-03-2013 | #7


Аватара для virus8

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


Да проблема была в этом заменил на точку(Гугл помог) - еще раз спасибо.

Отправлено: 01:18, 12-03-2013 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Вытянуть данные из XML

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - как отобразить данные XML в документе Word? shovgenyuk Microsoft Office (Word, Excel, Outlook и т.д.) 3 21-06-2011 00:49
[решено] Как вытянуть Alkid SE из Zver CrOsP Автоматическая установка Windows 2000/XP/2003 12 03-02-2010 02:58
Какой программой вытянуть звук из фильма? FIXXX Хочу все знать 2 28-09-2005 17:56
Как получить данные из xml-файла? ptt Программирование и базы данных 1 14-10-2004 09:45
Как вытянуть Флеш память из kiro Мобильные ОС, смартфоны и планшеты 5 21-02-2004 18:14




 
Переход