Проблема с XML-анализатором Android 3G: строка результата разбита и дублирована
Я должен получить данные из XML, полученного от веб-службы.
Я использую SAX-парсер, как следует:
URL url = new URL(this.pUrl);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
ProductsHandler handler = new ProductsHandler();
xr.setContentHandler(handler);
InputSource is = new InputSource(url.openStream());
is.setEncoding("ISO-8859-1");
xr.parse(is);
Элемент XML:
<product>
<id_product>4548</id_product>
<name>Special snack 30gr chocolate</name>
<price>15,00</price>
</product>
Фрагмент обработчика:
..
else if(localName.equals("name")){
this.in_nome=true;
}
..
else if(localName.equals("name")){
this.in_nome=false;
}
..
else if(this.in_name){
xmlparsing.setNames(new String(ch , start , length));
}
Когда я использую соединение WiFi, оно работает хорошо.
Если я использую соединение 3G, некоторые элементы разделяются и дублируются.
например
Поведение WiFi:
Product name: Special snack 30gr chocolate
3G поведение:
Product Name: Special sna;
Product Name: Special snack 30gr chocolate;
Такое поведение вызывает проблему в списке продуктов (идентификатор продукта связан с неправильным именем).
Как я могу решить это?