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"