Ungültiges Zeichen '& # x0' gefunden

7

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.

    
iOSDev 09.06.2009, 04:59
quelle

6 Antworten

4

Ich habe die Lösung,

Ich habe es gerade mit trim () getrimmt und es hat perfekt mit mir funktioniert.

    
iOSDev 09.06.2009, 11:46
quelle
12

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.

    
quelle
3

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:

%Vor%

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.

    
Jon Skeet 09.06.2009 05:29
quelle
2

Riecht so, als würden Sie eine leere Zeichenfolge als XML analysieren. Haben Sie überprüft, dass der Client eine gute Antwort erhält?

    
Andrew 09.06.2009 05:09
quelle
1

Welche Zeichencodierung verwenden Sie? Könnte es sein, dass Unicode verwendet wird und die Stückliste zu Beginn gesendet wird?

    
kgiannakakis 09.06.2009 05:29
quelle
0
%Vor%

Oben ist der Code, den ich zum Parsen verwende.

    
iOSDev 09.06.2009 05:20
quelle

Tags und Links