0

私のアプリにはxmlでデータが送信されます:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><response><status>FAIL</status><time>2012-12-11 22:35</time></response>

このデータは次の方法で読み取ることができます。

String si;
while(is.available()>0){
    si+=(char)is.read();

}

しかし、ドキュメント ビルダーを使用すると、次のようになります。

Document doc=db.parse(sock.getInputStream());

この場所でアプリケーションをハングします。

誰かが私にこれを説明できますか?

4

1 に答える 1

0

私の推測では、ソケット入力ストリームがファイルの終わりを通知することはないため、解析メソッドは次の文字を待ってハングするだけです。サンプル ループを使用して XML を収集し、文字列を ByteArrayInputStream または StringBufferInputStream でラップして parse メソッドに渡すことをお勧めします。

于 2012-12-11T22:36:43.143 に答える