1

学校のシャトル追跡サーバーからシャトルのルートと位置を含むKMLファイルを取得しています。AndroidアプリケーションでこのKMLを解析したいのですが、ファイルをVTD-XML 2.9パーサーに渡すと失敗し、XMLが適切に終了していないことがわかります。ファイルをスキーマバリデーターで実行しました。KML2.1スキーマに準拠していませんが(フォルダー要素が好きではありません)、整形式です。

ドキュメントに他に問題はないと思いますが、コードに問題がある可能性がある場所もわかりません。

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);
4

1 に答える 1

0

という場合もあるかもしれません

is.read(doc); 

任意のバイト数のみを取得しますが、ドキュメント全体ではありません...戻り値を出力することで確認できます

int k = is.read(doc)

ドキュメント全体を読んだ後、setDoc(doc, 0, length) を使用する必要があります。0 はドキュメントに対する開始オフセットであり、length は xml ドキュメントの長さです。

于 2011-01-31T20:13:14.203 に答える