Есть метод, который получает элементы xml.parsers:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
private Currency getXMLCurrency(Node item, String date) {
Currency currency = new Currency();
if (item.getNodeType() == item.ELEMENT_NODE) {
Element element = (Element) item;
currency.setdCode(getTagValue("NumCode", element));
currency.setCode(getTagValue("CharCode", element));
currency.setForAmount(Integer.parseInt(getTagValue("Nominal", element)));
currency.setRate(Double.parseDouble(getTagValue("Value", element).replace(",", ".")));
currency.setDate(date);
}
return currency;
}
Элементы извлекаются в другом методе, который возвращает String:
private static String getTagValue(String tag, Element element) {
NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodeList.item(0);
String s = node.getNodeValue();
Log.d("VALUE", s);
return s;
}
Вот элемент обрабатываемой XML-страницы:
<Valute ID="R01010">
<NumCode>036</NumCode>
<CharCode>AUD</CharCode>
<Nominal>1</Nominal>
<Name>Австралийский доллар</Name>
<Value>16,0102</Value>
</Valute>
При попытке выполнить строчку:
currency.setForAmount(Integer.parseInt(getTagValue("Nominal", element)));
выскакивает NumberFormatException. Выглядит это так:
Caused by: java.lang.NumberFormatException: Invalid int: "
1
"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:410)
at java.lang.Integer.parseInt(Integer.java:367)
at java.lang.Integer.parseInt(Integer.java:334)
at com.xpendence.development.currencyconverter.operations.Strategy.getXMLCurrency(Strategy.java:122)
При том, что Log.d показывает:
04-29 05:52:16.824 13060-13115/com.xpendence.development.currencyconvarter D/VALUE: 1
— вполне себе обычную единицу.
Я уж не знаю, что делать. Прошу помощи.
попробуйте
currency.setForAmount(Integer.parseInt(getTagValue("Nominal", element).trim()));
возможно в значения попадают пробелы
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости