2011-01-19 9 views
35

Estoy usando SimpleXml para (de) serializar POJOs. Ahora, tengo un gran XML que tiene algunos elementos que no son necesarios. Por ejemplo, con este XML:¿Cómo ignorar los elementos XML no utilizados mientras se deserializa un documento?

<Root> 
    <Element>Used</Element> 
    <Another>Not used</Another> 
<Root> 

Quiero crear un POJO que se parece a:

@Root 
class Root{ 
    @Element 
    private String element; 
} 

El problema es que estoy recibiendo este Excepción:

simpleframework.xml.core.ElementException: Element 'Another' does not have a 
match in class blah.blah.Blah at line 1 

So. .. ¿cómo debo configurar el POJO para que pueda analizar correctamente el XML?

Respuesta

84

Establezca strict en false en la anotación raíz para ignorar cualquier elemento o atributo XML que no aparezca en la clase.

@Root(strict=false) 

Alternativamente, establezca strict en false cuando se lee el código XML en el serialiser:

Root root = serializer.read(Root.class, source, false); 
5

puede agregar (requerido = false) a un solo elemento

@Element(required=false) 
private int statusCode; 

si tiene más elementos, use

@Root(strict=false) 
Cuestiones relacionadas