2011-01-19 17 views
35

Używam SimpleXml do (de) serializacji POJO. Teraz mam duży XML, który ma pewne elementy, które nie są potrzebne. Na przykład, w tym XML:Jak ignorować nieużywane elementy XML podczas deserializacji dokumentu?

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

Chcę stworzyć POJO, który wygląda tak:

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

Problem jest to, że jestem coraz to wyjątek:

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

So. .. jak skonfigurować POJO, aby poprawnie analizować XML?

Odpowiedz

84

Ustaw strict na wartość false w adnotacji głównej, aby zignorować elementy lub atrybuty XML, które nie pojawiają się w klasie.

@Root(strict=false) 

Alternatywnie ustaw strict false kiedy czytasz xml w serialiser:

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

można dodać (wymagane = false) do pojedynczego elementu

@Element(required=false) 
private int statusCode; 

jeśli masz więcej elementów, użyj

@Root(strict=false) 
Powiązane problemy