2011-01-10 6 views
0

Ich verwende die Google Bücher API für eine Android-App, die ich baue. Dies ist ein Beispiel der XMLAndroid Parsing HTML-Entitäten mit DOM-Parser für RSS-Feed

<dc:description>This trilogy includes &amp;quot; The Hitchhiker&amp;#39;s Guide to the Galaxy&amp;quot; , &amp;quot; TheRestaurant at the End of the Universe&amp;quot; , &amp;quot; Life, Universe and Everything&amp;quot; and &amp;quot; So Long ...</dc:description> 
<dc:format>590 pages</dc:format> 
<dc:format>book</dc:format> 

Datei Und das ist ein Bruchteil des Code, den ich bin mit der Beschreibung zu extrahieren

if (entry.getElementsByTagName("dc:description").item(0) != null) { 
    Element d = (Element) entry.getElementsByTagName("dc:description") 
     .item(0); 
    b.setDescription(d.getFirstChild().getNodeValue()); 

} 

Das Problem ist, wenn die HTML.fromHtml mit (Str) Funktion schneidet den Text in der ersten HTML-Entität (so in diesem Beispiel aus, sagt sie einfach

Diese Trilogie

enthält 0

Wenn ich laufe den gleichen Code außerhalb von Android ist es ok funktioniert und zeigt zumindest die Zeichenfolge mit dem Escape-Zeichen, das heißt

This trilogy includes &quot; The Hitchhiker&#39;s Guide to the Galaxy&quot; , &quot; TheRestaurant at the End of the Universe&quot; , &quot; Life, Universe and Everything&quot; and &quot; So Long ... 

Wenn ich dann diese manuell in die App hinzufügen, die HTML.fromHtml() Werke Gut, ich denke, das Problem ist Androids Implementierung des Parsers.

Ein ähnliches Problem ist Android decoding html in xml file. Ich habe versucht, die Validierung der Fabrik auf falsch zu setzen, und da es sich um einen RSS-Feed handelt, kann ich kein HTML-Wurzelelement deklarieren (wie in diesem Post vorgeschlagen).

Antwort

0

Ich habe die Beschreibungsdaten von Google nicht bekommen, aber ich denke, das Problem könnte gelöst werden, indem normalize() auf dem Dokumentelement ausgeführt wird - ich hatte ein ähnliches Problem mit einer anderen API und das hat es behoben.

+0

Ich habe dasselbe Problem, können Sie erklären, was Sie mit "normalize()" meinen? –