Ich erhalte folgende Ausnahme beim Parsen des XML.
%Vor%Ich habe Xml-Daten im String-Format und ich analysiere es mit dem DOM-Parser. Ich analysiere Daten, die eine Antwort vom Java-Server an einen Blackberry-Client sind. Ich habe auch versucht, mit SAX-Parser zu analysieren, aber das Problem ist nicht gelöst. Bitte helfen.
Sie haben in Ihrem Zeichenstrom ein Nullzeichen, d. h. char (0), das in einem XML-Dokument nicht gültig ist. Wenn dies in der ursprünglichen Zeichenfolge nicht vorhanden ist, handelt es sich höchstwahrscheinlich um ein Zeichendecodierungsproblem.
Ihr Code ruft derzeit getBytes()
mit der Standardcodierung der Plattform auf - das ist sehr selten eine gute Idee. Finden Sie heraus, was die Codierung der Daten wirklich ist, und verwenden Sie diese. (Es ist wahrscheinlich UTF-8.)
Wenn der Blackberry DocumentBuilder.parse(InputSource)
enthält, wäre das vorzuziehen:
Wenn das nicht funktioniert, schauen Sie sich sehr Ihre Zeichenfolge an, z. so:
%Vor%Es ist möglich, dass das Problem darin besteht, die Antwort vom Server zu lesen - wenn Sie es schlecht lesen, könnten Sie Unicode-Nullen (\ u0000) in Ihrer Zeichenkette haben, die offensichtlich nicht in der log / debug-Ausgabe erscheinen, aber würden verursachen Sie den Fehler, den Sie angezeigt haben.
EDIT: Ich habe gerade gesehen, dass Sie die Base64-Daten an erster Stelle bekommen - warum also in eine Zeichenkette und dann zurück in Bytes konvertieren? Entschlüsseln Sie einfach die Base64 in ein Byte-Array und verwenden Sie diese dann als Grundlage für Ihre ByteArrayInputStream
. Dann müssen Sie sich nie mit einer Textkodierung beschäftigen.
Welche Zeichencodierung verwenden Sie? Könnte es sein, dass Unicode verwendet wird und die Stückliste zu Beginn gesendet wird?
Tags und Links java xml blackberry java-me