Я пытаюсь проанализировать Мыло сообщение ProbeMatch с XMLPullParser. Я получаю это через Многоадресную передачу UDP. Я использую следующий код для получения его.
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>À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?À?
Во-первых, я думаю, вы захотите построить String следующим образом:
String data = new String(packet.getData(),
packet.getOffset(),
packet.getLength());
Что касается этого быть лучшим способом. AIUI на самом деле нет, хотя может быть сторонний API, который немного упрощает заполнение / опорожнение датаграмм, поскольку вся упаковка байтов очень неудобна.