SimpleXML, org.simpleframework.xml.core.PersistenceException
Después de mucha frustración he venido aquí para pedir ayuda. Estoy utilizando org.simpleframework.xml para analizar las fuentes RSS en Android. Consigo el error siguiente cuando intento analizar el archivo del xml:
org.simpleframework.xml.core.PersistenceException: Element 'link' is already used with @org.simpleframework.xml.Element(data=false, name=, required=true, type=void) on field 'link'
Esta es una muestra del xml que estoy intentando analizar:
- Manejando espacios de nombres Xml con XmlPullParser
- Parsing Soap Uso del servicio de Retrofit Estoy frente a una excepción como este (es decir) modelo de cuerpo desajustado en el modelo de sobre de clase en la respuesta
- Fragmento Google Maps de Google Maps en el xml. Me sale "prefijo de espacio de nombres inesperado"
- Archivo XML válido da un error "no se pudo analizar" en Android ADT
- Si cambio una biblioteca externa: AndroidManifest, no puedo analizar el archivo
<?xml version="1.0" encoding="utf-8" ?> <rss version="2.0" xml:base="http://www.somelink.com/" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>My Title</title> <description>Latest breaking news, sport, weather and opinion, from South Africa, Africa and the world.</description> <link>http://www.somelink.com/</link> <atom:link rel="self" href="http://www.someotherlink.com" /> </channel> </rss>
Estas son las clases y anotaciones que utilizo en el código:
@Root(name = "rss") @Namespace(reference = "http://www.w3.org/2005/Atom", prefix = "atom") public class NewsFeed { @Version(revision = 2.0) private float version; @Attribute private String base; @Element private Channel channel; } @Root(name = "channel") public class Channel { @Element private String title; @Element private String description; @Element private String link; @Element @Namespace(reference = "http://www.w3.org/2005/Atom", prefix = "atom") private Link rssLink; @ElementList(inline = true) private List<NewsItem> newsItems; } @Root(name = "link") public class Link { @Attribute private String rel; @Attribute private String href; public String getRel() { return rel; } public void setRel(String rel) { this.rel = rel; } public String getHref() { return href; } public void setHref(String href) { this.href = href; } }
Creé la clase Link para poder usar el espacio de nombres de átomos. Como se puede ver en el error, la biblioteca no parece tener en cuenta el espacio de nombres y es por eso que se queja de que el elemento de enlace ya se ha utilizado. ¿Qué estoy haciendo mal? Su ayuda sería muy apreciada.
- Analizar archivo xml utilizando java para - aplicación basada en android
- Analizar el feed RSS de Android
- Quiero analizar Google Map API para el geocódigo inverso en Android
- ¿Cómo puede convertir el archivo XML local a org.ksoap2.serialization.SoapObject?
- Cómo evitar la inyección XML como XML Bomba y ataque XXE
- No se pudo obtener los datos xml de res en Android 3.0 y versiones posteriores
- Android: DOM vs SAX vs análisis XMLPullParser?
- No se detectaron restricciones de gramática (DTD o esquema XML) para el documento (Android)
- FragmentManager y SupportFragmentManager ambos utilizados
- Android Native crash en /system/lib/libskia.so (procesamiento de mapas de bits)