0

HTTP サーバーから XML を文字列として受け取ります。

HttpResponse httpResponse = httpClient.execute (httpPost);
return EntityUtils.toString (httpResponse.getEntity ());

この文字列には、2 つの値があるように見えます。これは、長さをログに記録しようとすると、Logcat に 2 つの行が表示されるためです。

Log.d ("XML", xml.length () + "");

17:30:22.313    19712   DEBUG   XML 161
17:30:22.313    19712   DEBUG   XML 0

そして、この XML を DOM パーサーで解析しようとすると、org.xml.sax.SAXParseException: Unexpected end of document が発生します。

私はここで似たようなことについて読みました。1 行のコードで 2 行の Logcat 行を取得した場合、何か間違ったことをしているのは私ではありません。何が問題なのですか?

4

3 に答える 3

0

そうではなくてはいけませxml.lengthxml).lengthか?

それはlogcatを説明しますが、解析の失敗は説明しません...

于 2012-05-18T15:12:48.320 に答える
0

メソッド引数を介してXML文字列を渡すのではなく、解析と同じメソッドでXMLを要求すると、問題が修正されました。まったく同じコードを使用し、別のメソッドに移動しました。これは、AndroidまたはNetBeansの奇妙なバグのようです。

于 2012-05-19T08:04:07.503 に答える
0

別のコメントが言ったように、2 つの開き括弧、3 つの閉じ括弧、それはコンパイルされません。おそらく、コードの引用を間違えました。2 番目の長さ 0 は、おそらく "" に由来します。logcat は 2 つのログを表示するため、おそらく Log.d 行が 1 つ少なくなり、2 つの行が合わさって奇妙な結果が生成されます。

于 2012-05-18T15:26:15.170 に答える