将XMLstring编码为EXI并通过websocket发送

首先,我使用的是客户端 – 服务器体系结构,android为客户端,node.js为服务器,它们通过Socket.io库连接,因此它们使用的是websocket。

我怀疑的是,我正在用Java的XMLSerializer生成XMLstring,我想将它编码为EXI并将其发送到服务器,因此,是否可以在不使用文件的情况下编码XML-EXI? 直接从string到string? 因为我看到的所有例子都假设我的XML是在一个文件中,而我想把输出转换成另一个文件。 另一个疑问是,我可以把EXI作为string吗? 因为我已经build立了客户端和服务器之间的通信,但是他们只是发送string,我不知道如果我能发送整个文件,在这种情况下,会有任何不同的数据发送量?

最后我解决了这个问题,对于有同样问题的人,解决办法是:

 String input = methodGivingXMLString(); byte inputBytes[] = input.getBytes(); ByteArrayInputStream in = new ByteArrayInputStream(inputBytes); transmogrifier.encode(new InputSource(in)); 

对于input和输出:

  ByteArrayOutputStream result = new ByteArrayOutputStream(); transmogrifier.setOutputStream(result); 

注1:我正在使用OpenExi库

注2:在调用encode()方法之前,必须设置输出stream。