21

Retrofit を使い始めたばかりです。SimpleXML を使用するプロジェクトに取り組んでいます。http://www.w3schools.com/xml/simple.xmlなどのサイトから XML を取得して読み取る例を教えてください。

4

3 に答える 3

52

プロジェクトで新しいクラスとしてインターフェイスを作成します。

public interface ApiService {
    @GET("/xml/simple.xml")
    YourObject getUser();
}

次に、アクティビティで次のように呼び出します。

RestAdapter restAdapter = new RestAdapter.Builder()
                    .setEndpoint("http://www.w3schools.com")
                    .setConverter(new SimpleXmlConverter())
                    .build();

ApiService apiService = restAdapter.create(ApiService.class);
YourObject object = apiService.getXML();

ライブラリを正しく取得するには、build.gradle ファイルで次のことを行う必要があります。

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'
}

次に、YourObject を指定し、xml ファイルの構造に従って注釈を追加する必要があります。

@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;
}
于 2014-08-19T13:35:13.390 に答える