2010-05-17 38 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