У меня есть на следующий XML SAX Handler: неAndroid: разделить очень большие строки
private class GetXML_Handler extends DefaultHandler {
int x = 0;
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
Log.i("DataHandler", "Start of XML element");
int y = 0;
if (qName.equals("polygon")) {
locations.add(x, new ArrayList<location>());
String coordinates = attributes.getValue("coordinates");
String[] parts = coordinates.split(",");
System.out.println("Cyklus zacaty");
locations.get(x).add(y, new location(Double.parseDouble(parts[0]), Double.parseDouble(parts[1])));
for(int i = 2; i <= parts.length; i = i + 2){
y++;
double Latitude = Double.parseDouble(parts[i].substring(2));
double Longitude = Double.parseDouble(parts[i+1]);
locations.get(x).add(y, new location(Latitude, Longitude));
}
System.out.println("cyklus skonceny");
x++;
}
}
}
Однако "cyklus zacaty" не получает распечатанную. Он печатает хорошо, если я перемещаю его до String[] parts = coordinates.split(",")
. Эти строки имеют большой объем (например, 350 GPS-координат), поэтому возможно, что java просто не справляется с этим, и он останавливается (без исключения).
Также мой «Начальный элемент XML» печатается всего 5 раз (до первых координат), но если я удалю этот метод разделения, он печатает 28 раз (количество моих XML-элементов). Я уверен, что мой обработчик XML работает правильно (это просто что-то о тех строках).
Структура XML, как это:
<?xml version="1.0" encoding="UTF-8"?>
<oblasti>
<oblast>
<nazovOblasti>VT</nazovOblasti>
<polygon>
<coordinates>
132456,4658789,0 56487,4864684
</coordinates>
</polygon>
....
Любые предложения?
Спасибо вперед
Хорошо, могу сказать, что речь идет не о длине строк и методе разделения. – huidube
Да, я понял, что когда я добавил только 6 координат, и он тоже остановился ... но я не вижу, где проблема – horin
, вы должны использовать свой отладчик, чтобы увидеть, где программа останавливается/выходит. Или, мой любимый, используйте многие System.out.println(), чтобы выяснить, какие значения не так ожидаются. – huidube