Autore Topic: Problema parsing xml e caratteri speciali  (Letto 611 volte)

Offline casim

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    galaxy note 3, galaxy note 10.1
  • Sistema operativo:
    windows xp
Problema parsing xml e caratteri speciali
« il: 16 Dicembre 2013, 19:01:01 CET »
0
Ciao a tutti! Ho un problema con lo sviluppo di un feed rss, spero che mi possiate dare una mano. Per fare il parsing ho usato la classe xmlpullparser, e tutto funziona. Riempio una listview, con i testi contenuti nel tag "title" e al click apro un dialog conuna textview col contenuto del tag "description". I problemi sono prevalentemente 2:
1) i caratteri speciali dell'xml, che sostituiscono caratteri come doppio apice, costituiti da #&(numero o testo); potrei fare un semplice replace della stringa, ma mi sembra assurdo che non ci sia un metodo più semplice. Inoltre se devo fare un replace da sostituire con un doppio apice, come faccio a scriverlo (non posso fare mica replace(""", "codice"))? Premetto che attraverso il metodo setinput ho impostato come encoding utf-8.
2) questo sistema funziona con un sito che ha una precisa organizzazione dei tag. In altri funziona sempre, ma dentro il tag "description" non c'è tutto il testo, insomma sono organizzati in modo diverso. Non c'è un metodo generale, che funzioni contutti i siti?
Grazie in anticipo a chi mi vuole aiutare!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema parsing xml e caratteri speciali
« Risposta #1 il: 16 Dicembre 2013, 19:31:58 CET »
0
Per il punto 1) il problema è nel feed rss, che non dovrebbe contenere &#xxxx, perchè queste sono "entità HTML", che dovrebbero esserci solamente nell'HTML e non nei feed XML. Partendo dal presupposto che tu non puoi agire sul feed RSS per apportare le necessarie correzioni, puoi adattarti convertendo ogni stringa come se fosse codice HTML.

Codice (Java): [Seleziona]
String convertita = Html.fromHtml((String) iniziale).toString();
Per il punto 2) in realtà i feed RSS hanno un formato più o meno standard, infatti esistono gli RSS reader. Se poi alcuni siti non implementano pienamente lo standard, c'è poco da fare. Insomma il problema è dei siti, non tuo.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline casim

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    galaxy note 3, galaxy note 10.1
  • Sistema operativo:
    windows xp
Re:Problema parsing xml e caratteri speciali
« Risposta #2 il: 16 Dicembre 2013, 22:04:18 CET »
0
Funziona! Stavo uscendo pazzo, stavo perfino studiando i pattern perché non sapevo come uscirne, anche se sospettavo che ci fosse un qualche metodo che facesse al caso mio, ma non avevo trovato nulla nonostante tantissime ricerche, perciò grazie mille!
In merito all'altro discorso, pensavo anch'io che dovessero essere standard i feed, ma ho trovato due siti in particolare con una differente gestione dei tag, tale che la mia app funziona bene in un caso e un po' male in un altro. Eppure con feedly, il reader che uso sui miei dispositivi, sono iscritto ad entrambi, e ovviamente il risultato è il medesimo, perciò o c'è più di uno standard, ma comunque in numero limitato, o c'è un altro modo di fare il parsing che riesce a fare bene il lavoro in tutti i casi (ho visto che ci sono molti modi per farlo, e in una discussione che ho trovato in giro e che non riesco più a ritrovare c'era un tutorial che, a detta della persona che lo proponeva, si adattava a tutte le casistiche). Queste conclusioni mi sembrano le più logiche, ma in fondo io ancora non ho molta esperienza, perciò chissà!
Ad ogni modo, grazie ancora!