2010-05-17 4 views
0

Je tente d'analyser un message Soap ProbeMatch avec XMLPullParser. Je reçois ceci via Multicast UDP. J'utilise le code suivant pour le recevoir.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()) 

Si je convertir l'octet [] pour chaîne Parser ne marche pas le manger ... Existe-t-il des moyens plus élégants de le faire?

Quand j'imprimer le fichier XML (comme String), je reçois les octets inutilisés à la fin de la chaîne:

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

Répondre

2

Tout d'abord, je pense que vous aurez envie de construire la chaîne comme suit:

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

Comme s'il y avait un meilleur moyen. AIUI pas vraiment, mais il pourrait y avoir une API tierce qui rend le remplissage/vidage des datagrammes un peu plus facile, car tout l'empilement des octets est très fastidieux.

+0

Merci, c'est tout! Fonctionne bien :) – JustFogMaxi