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

关于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条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器