Datagrampacket到xml

时间:2010-05-17 12:59:35

标签: xml android packet datagram

我试图用XMLPullParser解析Soap ProbeMatch消息。我通过UDP Multicast收到此消息。我使用以下代码来接收它。

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

mSocket.receive(packet);

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

如果我将byte []转换为String,Parser不会吃掉它...有没有更优雅的方法来做到这一点?

当我打印xml(作为String)时,我得到字符串末尾的未使用字节:

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

1 个答案:

答案 0 :(得分:2)

首先,我认为您将要构建String,如下所示:

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

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