2010-05-17 32 views
0

我试图用XMLPullParser解析Soap ProbeMatch消息。我通过UDP多点传送收到此消息。我使用下面的代码来接收它。Datagrampacket to xml

byte[] buf = new byte[1900]; 
DatagramPacket packet = new DatagramPacket(buf, buf.length); 

mSocket.receive(packet); 

// Damn ugly.... 
String data = new String(packet.getData()) 

如果我将字节[]转换为字符串,解析器不会吃它...有没有更优雅的方式来做到这一点?

当我打印的XML(如字符串),我得到的字符串末尾的未使用的字节:

</s12:Envelope>À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À? 

回答

2

首先,我想你会想构建字符串如下:

String data = new String(packet.getData(), 
         packet.getOffset(), 
         packet.getLength()); 

至于有更好的方法。 AIUI并不是真的,尽管可能有一个第三方API,这使得填充/清空数据报变得更容易一些,因为所有的字节打包非常花哨。

+0

谢谢,这就是它!工作正常 :) – JustFogMaxi 2010-05-18 07:49:23