VTD-XML выдает ошибку «XML не завершен должным образом» при разборе файла KML - PullRequest
1 голос
/ 31 января 2011

Я получаю файл KML, содержащий маршрутные маршруты и местоположения челноков, с сервера отслеживания челноков в моей школе. Я хочу проанализировать этот KML в моем приложении Android, но когда я передаю файл в анализатор VTD-XML 2.9, он не работает, сообщая мне, что XML не завершен должным образом. Я пропустил файл через валидатор схемы и, хотя он не соответствует схеме KML 2.1 (не нравится элемент folder), он хорошо сформирован.

Я не думаю, что с документом что-то не так, но я также не вижу, где может быть проблема с моим кодом:

byte[] doc = new byte[32000];
URL url = new URL("http://shuttles.rpi.edu/displays/netlink.kml");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream is = conn.getInputStream();
is.read(doc);

VTDGen vg = new VTDGen();
vg.setDoc(doc);
vg.parse(true);

1 Ответ

0 голосов
/ 31 января 2011

Может случиться так, что

is.read(doc); 

даст вам только произвольное количество байтов, но определенно не весь документ ... вы можете убедиться в этом, распечатав возвращенное значение

int k = is.read(doc)

После прочтения всего документа вы должны использовать setDoc (doc, 0, length), 0 - начальное смещение по отношению к документу, length - длина документа xml.

...