2010-12-13 9 views
1

Okay, zuerst bin ich ein Anfänger bei Android-Programmierung. Ich habe Java genommen, aber ich lerne immer noch (nicht alle). Ich versuche, das Quellcodeformular here zu nehmen und es richtig lesen zu lassen. Momentan habe ich 2 Probleme. Ich werde nur den ersten angeben und dann einen zweiten Beitrag für den zweiten Beitrag veröffentlichen.
Einer der RSS-Feed wird auf meinem Gerät angezeigt, es enthält nicht alle Details (Beschreibung). Wenn ich den Feed über meinen Browser lade, bemerke ich, dass einige der Anführungszeichen und Apostrophen in " und ' umgewandelt werden. Aus irgendeinem Grund hält dies den Parser davon ab, ihn korrekt zu analysieren. Jede Hilfe würde sehr geschätzt werden.Einige Zitate und Apostrophe werden nicht korrekt analysiert

+1

Können Sie ein Beispiel für den RSS-Feed posten, das Probleme verursacht? –

+0

es ' s kompakt, einfach zu reisen, Fisch Themen, Schaukeln, spielt Musik und hat Lichter acithium

+0

Hier ist die RSS-Feed-Adresse: http://ramstein.bookoo.com/rss.jsp? w = & s = 25 & n = 15 && ck = – acithium

Antwort

0

Ich habe die Ursache des Problems herausgefunden. Ich musste einen String-Puffer in der Charcters-Methode einrichten.

public void characters(char ch[] , int start, int length) 
{ 
    if (buffering) 
      buf.append(ch, start, length); 

} 

Sobald ich das tat, ich habe gerade den String in einen String im „Endelement“ -Methode zugewiesen, wenn ich meine Daten gespeichert.

public void endElement(String namespaceURI, String localName, String qName) throws SAXException 
{ 

    String content = buf.toString(); 
    Log.i("RSSReader ",currentstate +" " + content + "]"); 
    switch (currentstate) 
    { 
     case RSS_TITLE: 
       _item.setTitle(content); 
       buffering = false; 
      currentstate = 0; 
      break; 
     case RSS_LINK: 
       _item.setLink(content); 
       buffering = false; 
      currentstate = 0; 
      break; 
     case RSS_DESCRIPTION: 
       _item.setDescription(content); 
       buffering = false; 
      currentstate = 0; 
      break; 

    } 

Danach hat alles gut geklappt.

+0

Dieser Code ist zu unvollständig, um nützlich zu sein. Bitte überlegen Sie, mehr hinzuzufügen. – user123321

0

Ich hatte das gleiche Problem. Ich habe UTF-8-Codierung für die Analyse verwendet. Aber nachdem es ISO-8859-1 gemacht hatte, lief alles korrekt. Ich kann nicht den vollständigen Code einfügen, sondern nur eine Probe für Sie, wo Sie ändern, wie folows ist machen: Meine vorherigen Code zum Parsen Danach

Xml.parse(feedStream, Xml.Encoding.UTF_8, root.getContentHandler()); 

war ich es wie folgt umgerechnet:

Xml.parse(feedStream, Xml.Encoding.ISO_8859_1, root.getContentHandler()); 
+0

was wäre der Code, wenn auf das Beispiel hier angewendet wird http://www.ibm.com/developerworks/xml/library/x-android/ – acithium

+0

Wenn Sie die Seite richtig überprüfen, gibt es "Einfachere SAX-Analyse" Darunter gibt es " Listing 7. Android SAX-Parser "Sie können den gleichen Code finden, den ich angegeben habe, ersetzen Sie nur den Codierungstyp. –

+0

Ich habe das versucht, aber keine Würfel. Ich habe bemerkt, dass es eine JSP-Datei ist. Der Header sagt, dass es ein XML-Dokument ist, aber es hat immer noch diese ' s-Strings drin. Ich werde weiter herumspielen und sehen, was mir einfällt. – acithium

Verwandte Themen