求教!如何解析InputStream中的XML格式数据?

时间:2022-10-31 16:42:46
目前遇到一个问题,需要和一个远程计算机建立socket连接,然后从中得到InputStream,流里传送的是一个具有XML格式的String,被转换为若干byte送到InputStream里,我需要从这个流里得到XML的内容。我使用的笨办法是,先接受到一个byte[],然后转为String,再把这个String写到一个File里,然后用SAX解析。有没有好办法啊,能够直接用SAX解析转换后的String?或者直接用SAX解析InputStream? 或者有其他更好的方法?多谢了!!!!!

6 个解决方案

#1


用dom4j直接就可以解析啊  没有那么麻烦吧

#2


soap?

#3


可以的
以使用jdom为例:
String str= "需要解析的xml字符串";
byte[] b = str.getBytes();
InputStream inp = new ByteArrayInputStream(b);//InputStream流
SAXBuilder sb = new SAXBuilder();
//build(java.io.InputStream in) This builds a document from the supplied input stream.
Document document = sb.build(inp);
//你看看jdom的api,org.jdom.input.SAXBuilder,它的build方法有很多输入形式

#4


如果你的是直接的输入流,就先接收这个输入流,然后就用上面的
Document document = sb.build(inp);就搞定了

#5


多谢楼上几位!我这就试试!不过我在程序中需要不停的接收这样的XML格式的String,用JDOM这样是不是会影响效率?因为这个XML的String并不是长,大概每个不超过1000个字符。

#6


引用 1 楼 lgwinym 的回复:
用dom4j直接就可以解析啊  没有那么麻烦吧

#1


用dom4j直接就可以解析啊  没有那么麻烦吧

#2


soap?

#3


可以的
以使用jdom为例:
String str= "需要解析的xml字符串";
byte[] b = str.getBytes();
InputStream inp = new ByteArrayInputStream(b);//InputStream流
SAXBuilder sb = new SAXBuilder();
//build(java.io.InputStream in) This builds a document from the supplied input stream.
Document document = sb.build(inp);
//你看看jdom的api,org.jdom.input.SAXBuilder,它的build方法有很多输入形式

#4


如果你的是直接的输入流,就先接收这个输入流,然后就用上面的
Document document = sb.build(inp);就搞定了

#5


多谢楼上几位!我这就试试!不过我在程序中需要不停的接收这样的XML格式的String,用JDOM这样是不是会影响效率?因为这个XML的String并不是长,大概每个不超过1000个字符。

#6


引用 1 楼 lgwinym 的回复:
用dom4j直接就可以解析啊  没有那么麻烦吧