weixin_42303163
2009-03-27 19:39
浏览 763
已采纳

关于JDOM解析XMl中的SAXBuilder 中的build方法的问题

我最近想写个聊天工具玩玩,用socket。我想将内容以xml形式发送到另一方。可是遇到一个问题,我在用SAXBuilder.build方法时将socket.getInputStream()传入方法中获取解析到得Document,结果发现流进入这个方法前我的socket还是开得,可这个方法一过socket就被close了,弄得我的程序没办法继续进行。有知道怎么回事的给个说法吧?
[b]问题补充:[/b]
代码如下:
public void readXmlOnStream(InputStream is)
{
SAXBuilder build = new SAXBuilder();
Document doc = null;
try {
//is在这时断点调试还看到socket的isClosed=false
doc = build.build(is);
//在这时就看到socket的isClosed=true了,简直莫名奇妙
} catch (Exception e) {
}
}

还有这个build方法可以直接传xml的字符串进去?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • playfish05 2009-03-27 22:11
    最佳回答

    先把你的xml从socket读出来,拼成xml字符串 xmlString,然后用下列方法读取:

    SAXBuilder builder = new SAXBuilder();

    Document anotherDocument = builder.build(new StringReader(xmlString));

    我看了一下api...发现jdom居然没有直接的方法可以读string...囧啊.

    我一直都是用dom4j..感觉会比jdom更好

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题