How to ignore unused XML elements while deserializing a document?

13,368

Solution 1

Set strict to false within the Root annotation to ignore any XML elements or attributes that do not appear in the class.

@Root(strict=false)

Alternatively, set strict to false when you read the xml in the serialiser:

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

Solution 2

you can add (required=false) to a single element

@Element(required=false)
private int statusCode;

if you have more elements use

 @Root(strict=false)
Share:
13,368
Cristian
Author by

Cristian

http://cristian.io

Updated on June 04, 2022

Comments

  • Cristian
    Cristian about 2 years

    I'm using SimpleXml to (de)serialize POJOs. Now, I have a big XML which has some elements which are not needed. For instance, with this XML:

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

    I want to create a POJO which looks like:

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

    Problem is that I'm getting this Exception:

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

    So... how should I configure the POJO so that I can parse the XML correctly?