android-utf-8-Datei Parsen

Habe ich einige .xml - Dateien, die codiert werden in UTF-8. Aber immer wenn ich versuche zu analysieren, Sie auf meinem tablet (idea pad, lenovo, android 3.1), bekomme ich den gleichen Fehler:

org.xml.SAXParseException: Unexpected token (position: TEXT @1:2 in 
java.io.StringReader@40bdaef8).

Diese sind die Linien, Ausnahme:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource inputSource = new InputSource();
inputSource.setCharacterStream(new StringReader(xmlData));
Document doc = db.parse(inputSource); //This line throws exception

Hier mein input:

public String getFromFile(ASerializer aserializer) {
    String filename = aserializer.toLocalResource();
    String data = new String();
    try {
        InputStream stream = _context.getResources().getAssets().open(filename);
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
        StringBuilder str = new StringBuilder();
        String line = null;
        while((line = reader.readLine()) != null) {
            str.append(line);
        }
            stream.close();
            data = str.toString();
   }

           catch(Exception e) {
       }
       return data;
    }

XML-Datei:

<Results>
    <Result title="08/07/2011">
        <Field title="Company one" value="030589674"/>
        <Field title="Company two" value="081357852"/>
        <Field title="Company three" value="093587125"/>
        <Field title="Company four" value="095608977"/>
    </Result>
    <Result title="11/07/2011">
        <Field title="Company one" value="030589674"/>
        <Field title="Company two" value="081357852"/>
    </Result>
</Results>

Ich will nicht, um Sie zu konvertieren ANSI, so gibt es einen Weg, um die db.parse() Arbeit?

  • ,,Ihre xml-Datei plz...
  • es würde wirklich Sinn machen, wenn Sie zeigte sample-Eingang mit, dass
  • Wie haben Sie Lesen xmlData? Ich vermute, dass irgend etwas lief da schief.
  • Die Bearbeitung meiner ursprünglichen Antwort, die die Methode liest die Daten.
  • stackoverflow.com/questions/7870593/...
  • Wie ist xmlData immer geladen? String speichert die Daten als UTF-16, also vermutlich ein problem mit der Initialisierung, oder die XML-Datei korrupt, ein Beispiel würde helfen.
  • Hinzufügen ein Teil des xml auf meinem ursprünglichen post.
  • OT: es scheint komisch zu mir, mit einem StreamReader zu Lesen, durch einen BufferedReader zum Einlesen in einen String zu Parsen mit SAX-parser. Ich bin mir ziemlich sicher, dass der SAX-parser kann direkt auf das stream/reader und viel mehr effizient
  • effizienter und mehr richtig.

Schreibe einen Kommentar