- - PR -
ソケットからのXML文書のパース
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-08-16 23:29
うーん、SAXでも止まるとなりますと一部先の回答者からのご意見にもありますが
○入力ストリーム ist にデータが入っていない。 ○(かなり考えにくいですが)XMLデータの記述ミス。 あたりのような気がします。 一度ストリーム入力までで実行を打ち切って ist の内容をString化して確認してみては いかがでしょうか? | ||||
|
投稿日時: 2004-08-16 23:30
まず、以前にも書きましたが、parse()の後の readLine()は 不要と思われますが?(XML文書の後にまだ何か続くので しょうか? parse()が終わった後は、入力ではなく、処理結果 の出力等を行うのだと思われます。 以降はそう仮定して続け ます。) parse()から戻ってきたところでデータ処理するのではなく、 ドキュメントの終了タグ(この例では /address)のイベントを 受け取った endElement()内で処理すれば良いのだと思います。 それらの処理結果を受け取ったクライアントが close()すれば サーバの parse()も終了します。 この後サーバは、ソケットに対しては close()するしかありま せんが、SAX内で生成した何らかのオブジェクトはアクセスする ことができます。(追加修正) [ メッセージ編集済み 編集者: Kissinger 編集日時 2004-08-16 23:34 ] | ||||
|
投稿日時: 2004-08-16 23:59
いっそのこと、クライアントからXMLを送信する前にXMLデータの長さを送信して、サーバ側でそれを取得し、その長さ分のXMLデータをStringBufferにいれてあげて後はいっしょ、、、これでは駄目でしょうか?
| ||||
