2011-01-19 3 views
35

J'utilise SimpleXml pour (dé) sérialiser les POJO. Maintenant, j'ai un gros XML qui a des éléments qui ne sont pas nécessaires. Par exemple, avec ce XML:Comment ignorer les éléments XML inutilisés lors de la désérialisation d'un document?

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

Je veux créer un POJO qui ressemble à:

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

Le problème est que je reçois cette exception:

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

So. .. comment dois-je configurer le POJO afin que je puisse analyser le XML correctement?

Répondre

84

Définissez strict sur false dans l'annotation Racine pour ignorer les éléments XML ou les attributs qui n'apparaissent pas dans la classe.

@Root(strict=false) 

Sinon, définissez strict false lorsque vous lisez le fichier XML dans le serialiser:

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

vous pouvez ajouter (obligatoire = false) à un seul élément

@Element(required=false) 
private int statusCode; 

si vous avez plus d'éléments, utilisez

@Root(strict=false) 
Questions connexes