Parsowanie XML

0

Parsuje plik xml i mam błąd NumberFormatException prawdopodobnie związany z tym że w pliku xml mam przecinek a nie kropkę.

case XMLStreamConstants.END_ELEMENT:
                    switch (parser.getLocalName()) {
                        case "nazwa_waluty":
                            currency.setName_currency(text);
                        case "przelicznik":
                            currency.setConverter(Integer.valueOf(text));
                            break;
                        case "kod_waluty":
                            currency.setCode_converter(text);
                            break;
                        case "kurs_kupna":
                            currency.setBuying_rate(Double.valueOf(text));
                            break;
                        case "kurs_sprzedazy":
                            currency.setSelling_rate(Double.valueOf(text));
                            break;
                        case "pozycja":
                            currencyList.add(currency);
                            break;
                    }
                    break;

plik xml

tabela_kursow typ="C">
<numer_tabeli>73/C/NBP/2007</numer_tabeli>
<data_notowania>2007-04-12</data_notowania>
<data_publikacji>2007-04-13</data_publikacji>
<pozycja>
<nazwa_waluty>dolar amerykański</nazwa_waluty>
<przelicznik>1</przelicznik>
<kod_waluty>USD</kod_waluty>
<kurs_kupna>2,8210</kurs_kupna>
<kurs_sprzedazy>2,8780</kurs_sprzedazy>
</pozycja>
<pozycja>
<nazwa_waluty>dolar australijski</nazwa_waluty>
<przelicznik>1</przelicznik>
<kod_waluty>AUD</kod_waluty>
<kurs_kupna>2,3292</kurs_kupna>
<kurs_sprzedazy>2,3762</kurs_sprzedazy>
</pozycja>
<pozycja>
<nazwa_waluty>dolar kanadyjski</nazwa_waluty>
<przelicznik>1</przelicznik>
<kod_waluty>CAD</kod_waluty>
<kurs_kupna>2,4799</kurs_kupna>
<kurs_sprzedazy>2,5301</kurs_sprzedazy>
</pozycja>
...

klasa Currency

public class Currency {

    private String name_currency;
    private int  converter;
    private String code_converter;
    private double selling_rate;
    private double buying_rate;
....

Jak mogę poradzić sobie z tym ? Jak będzie trzeba wstawie cały kod parsowania

3

Trzymanie waluty jako double to bardzo bardzo zły pomysł. Serio. Już lepiej to pomnożyc i trzymać jako inta. Poza tym najprosciej będzie po prostu zrobić string replace ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1