I just started working with Retrofit. I am working on a project that uses SimpleXML. Can somebody provide me an example in which one fetches an XML from a site e.g. http://www.w3schools.com/xml/simple.xml" and reads it out?
You will create an interface as a new class in your project:
public interface ApiService { @GET("/xml/simple.xml") YourObject getUser(); }
Then in your activity you will call the following:
RestAdapter restAdapter = new RestAdapter.Builder() .setEndpoint("http://www.w3schools.com") .setConverter(new SimpleXmlConverter()) .build(); ApiService apiService = restAdapter.create(ApiService.class); YourObject object = apiService.getXML();
To get your libraries correctly, in your build.gradle file you need to do the following:
configurations { compile.exclude group: 'stax' compile.exclude group: 'xpp3' } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.squareup.retrofit:retrofit:1.6.1' compile 'com.mobprofs:retrofit-simplexmlconverter:1.1' compile 'org.simpleframework:simple-xml:2.7.1' compile 'com.google.code.gson:gson:2.2.4' }
Then you need to specify YourObject and add annotations to it according to the structure of the xml file
@Root(name = "breakfast_menu") public class BreakFastMenu { @ElementList(inline = true) List<Food> foodList; } @Root(name="food") public class Food { @Element(name = "name") String name; @Element(name = "price") String price; @Element(name = "description") String description; @Element(name = "calories") String calories; }
import java.util.ArrayList; import java.util.List; import org.simpleframework.xml.ElementList; import org.simpleframework.xml.Root; @Root(name = "breakfast_menu") public class BrakfastMenu { @ElementList(inline = true) protected List<Food> food; public List<Food> getConfigurations() { if (food == null) { food = new ArrayList<Food>(); } return this.food; } public void setConfigurations(List<Food> configuration) { this.food = configuration; } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With