powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Закачать курс валют
13 сообщений из 13, страница 1 из 1
Закачать курс валют
    #38129344
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал себе курс валют, но с xml до того не работал. Использую stax.
Создаю
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
     public void parse(InputStream input) 
     {
         XMLInputFactory inputFactory = XMLInputFactory.newInstance();
	 
         try 
	 {
             XMLStreamReader reader = inputFactory.createXMLStreamReader(input);
             process(reader);
         } 
	 catch (XMLStreamException e) { e.printStackTrace();}
     }
     



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
         name = "";
         while (reader.hasNext()) 
	 {
             // определение типа "прочтённого" элемента (тега)
             int type = reader.next();             
...
             switch (type) 
	     {
                case XMLStreamConstants.START_ELEMENT :  
			
		  name = reader.getLocalName();	
...


Все бы ничего, но тег в xml-файле <Record Date="01.01.2011" Id="R01235"> она мне выдает как Record. А как мне достать дату, на которую, собственно, берется валюта?
...
Рейтинг: 0 / 0
Закачать курс валют
    #38129431
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ладно, ладно, сам догадался...
...
Рейтинг: 0 / 0
Закачать курс валют
    #38129525
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В форуме принято делится решением. Ато поманил.... и убежал. :)
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130147
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВ форуме принято делится решением. Ато поманил.... и убежал. :)
Хорошо. Набрав в браузере заветный адрес http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=01/01/2011&date_req2=31/12/2012&VAL_NM_RQ=R01235 получаю курс валют и сохраняю страницу как xml-файл. Кладу в нужную директорию, начинаю дерибанить, мало что понимая в xml, но желая научиться. Выбираю механизм Stax, который, как и SAX позволяет считывать информацию из файла последовательно, но он еще проще, чем SAX. Код описан выше.

case XMLStreamConstants.START_ELEMENT : - позволяет выявить начало тега. Если тег Record, то достаю из него дату валютного курса так:
Код: java
1.
reader.getAttributeValue(null,"Date")


Если тег Nominal или Value, то на следующем заходе считается их значение в
Код: java
1.
2.
3.
4.
5.
6.
                case XMLStreamConstants.CHARACTERS : 

                   if (name.equalsIgnoreCase("Value"))
                      sValue = reader.getText().trim();
                   if (name.equalsIgnoreCase("Nominal"))
                      sNominal = reader.getText().trim(); 



Затем в case XMLStreamConstants.END_ELEMENT:- обозначающей конец тега - если тег Record, то значения Date, sValue, sNominal сохраняю для данной записи где сочту нужным (векор, коллекция и т.п.) и получаю строку с курсом валюты на дату. Пройдя по по всему xml -файлу имею набор курсов за период. Период, как уже все догадались задается в http-строке.

Дальше делаю с нею что хочу.
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130148
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь еще один вопрос - а как автоматически считывать курс валют и класть его в нужную директорию? А то я десктопщик, с такими вещами не сталкивался...
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130899
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так чего, никто не знает? Как сделать так, чтобы автоматически, задав диапазон дат, скачать содержимое страницы в браузер и сохранить его как xml-файл?
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130917
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
else12Так чего, никто не знает? Как сделать так, чтобы автоматически, задав диапазон дат, скачать содержимое страницы в браузер и сохранить его как xml-файл?
Зачем в файл сохранять и что значит "автоматически" в вашем случае?
Считать InputStream можно из URL без файла.
"автоматически" обычно подразумевает какое-то другое событие, при котором "автоматически" что-то ещё происходит.
Не может "автоматически" происходить без какого-то другого события. А то у вас выходит задача "я хочу чтобы файлы сами себя скачивали из интернета и сохраняли на мой жесткий диск".
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130918
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
else12Так чего, никто не знает? Как сделать так, чтобы автоматически, задав диапазон дат, скачать содержимое страницы в браузер и сохранить его как xml-файл?
По умолчанию браузеры не имеют доступа к файло вой системе.
Это ключевой момент в безопасности. Если им разрешить писать
куда угодно то в ту-же минуту все пользователи потонут в вирусах.

Браузер может выставить ссылку на ресурс и предложить пользователю
кликнув, указать место и сохранить его куда-то. При этом Windows
маркирует этот файл спец-NTFS тегом и антивирус форсированно
чекает его. Mozilla тоже предпринимает какие-то действия по тривиальным
проверкам.

Браузер также пишет весь кешируемый html контент в свой кеш но
это отдельная история. Получить оттуда путь довольно сложно.
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130933
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczelse12Так чего, никто не знает? Как сделать так, чтобы автоматически, задав диапазон дат, скачать содержимое страницы в браузер и сохранить его как xml-файл?
Зачем в файл сохранять и что значит "автоматически" в вашем случае?
Считать InputStream можно из URL без файла.
"автоматически" обычно подразумевает какое-то другое событие, при котором "автоматически" что-то ещё происходит.
Не может "автоматически" происходить без какого-то другого события. А то у вас выходит задача "я хочу чтобы файлы сами себя скачивали из интернета и сохраняли на мой жесткий диск".
Ну, мне известен адрес , по которому расположен xml файл с курсом валют (Подставляя диапазон дат, я формирую строку c адресом). Как теперь мне этот файл взять и положить к себе в какую-либо директорию для дальнейшей работы?
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130936
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wget поможет тебе автоматизировать это действие.
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130953
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
new URL(...).openConnection().getInputStream()
...
Рейтинг: 0 / 0
Закачать курс валют
    #38130991
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
else12Blazkowicz"автоматически" обычно подразумевает какое-то другое событие, при котором "автоматически" что-то ещё происходит.
Не может "автоматически" происходить без какого-то другого события.
Ну, мне известен адрес , по которому расположен xml файл...
"мне известен адрес" это не событие. Это факт.
...
Рейтинг: 0 / 0
Закачать курс валют
    #38131075
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczelse12пропущено...

Ну, мне известен адрес , по которому расположен xml файл...
"мне известен адрес" это не событие. Это факт.
Ну да. Все заработало! Спасибо. Если вдруг кому еще надо - то вот оно, ежедневное автоматическое закачивание курса валют из интернета...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Закачать курс валют
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]