Skip to content Skip to sidebar Skip to footer

Deserialization Of Xml With Simplexml In Java

I'm trying to deserialize an xml string with SimpleXML, i've looked at their examples but i'm not really sure that wether i grasp the concept or not. Sample XML (validates):

Solution 1:

I have a suggestion, but it's not ready to run (see below). However, ther maybe another, better solution ...

Class Item

Holding all your informations.

@Root(name="Item")
publicclassItem
{
    @Element(name="ID", required=true)
    private int id;
    @Element(name="language", required=true)
    privateString language;
    @Element(name="price", required=true)
    private int price;


    // ...
}

Class Result

Constructing everything around Item. Btw. you dont have to use inner classes here.

@Namespace(prefix="soap", reference="http://schemas.xmlsoap.org/soap/envelope/")
@Root(name="Envelope")
public class Result
{
    @Namespace(prefix="soap")
    @Element(name="Body")
    private SoapBody body;


    // ...// -----------------------------------------------------------------// -- Some inner classes, constructing the elements as in you xml --// -----------------------------------------------------------------@Namespace(prefix="soap")
    @Root(name="Body")
    static class SoapBody
    {
        @Element(name="Response")
        private Response response;


        // ...
    }



    @Root(name="Response")
    static class Response
    {
        @ElementList(name="Result", required=true)
        private List<Item> result;


        // ...
    }
}

(Example) How to use this code

Writing

Filef= ...

Serializerser=newPersister();
Resultr=newResult();
ser.write(r, f);

Reading

Filef= ...

Serializerser=newPersister();
Resultr= ser.read(Result.class, f);

Now ... there's one problem which prevents this example from running: <language /> This empty Element let SimpleXML throw a ValueRequiredException.

Solution 2:

@Element( required=false)
    privateString language;

Add this in your Item class and generate the getter and setter.I think it should work

Post a Comment for "Deserialization Of Xml With Simplexml In Java"