2016-04-28 52 views
0

解析以下XML这是我的XML结构使用改造的SimpleXML,转换为一个POJO类

<downloads> 
<item>98cfa929ee93149e245aabf5e4377058</item> 
<item>498b513aa646d6ef1c407cbeabf6bd20</item> 
<item>13815d2c0dd53a251bb53717b9f43b64</item> 
<item>7a0615eb601264bbae0ad510a31fd61d</item> 
<item>3157910f72705e60d0d4ba26c3fb0e84</item> 
<item>29e037200d14e21b4ccdfbfaaf1621e8</item> 
<item>5f5da6505eaa203d65d1a6203dd0e742</item> 
<item>98dcbf2a73016cc9e72c3cbc101de151</item> 
<item>7b21d3f11bf6b12e4c4abca7004ad80d</item> 
<item>116049d5a4e53240b76666c6826fc6d6</item> 
<item>c7ec466398f3d8cee56147c696760076</item> 
<item>66ce3335de344b32986d2b77ff992ae2</item> 
</downloads> 

和细节XML

<download> 
<item> 
<key>9b94e79fecb1f055f279d95e800867f9</key> 
<value> 
A Jedi uses the Force for knowledge and defense, never for attack. 
</value> 
</item> 
</download> 

这是我想从服务器获取什么,将上面的xml转换为它。

public class DownloadPayloadCollection { 
     // Class log identifier 
     public final static String LOG_TAG = DownloadPayloadCollection.class.getSimpleName(); 
     @Root(name = "downloads") 
     @ElementList(inline=true) 
     private List<DownloadPayload> result; 


     public DownloadPayloadCollection() { 
     } 

     public List<DownloadPayload> getResult() { 
      Log.d(LOG_TAG, "CALLED FROM getResult() " + result.toString()); 
      return result; 
     } 
    } 

这是应该表示项目元素的类。

@Root(name = "download") 
public class DownloadPayload { 

    @Element(name = "key", required = false) 
    private String key; 

    @Element(name = "value", required = false) 
    private String value; 

    public DownloadPayload() { 
    } 

    public String getKeyString() { 
     return keyString; 
    } 

    public void setDownloadPayloadKey(String key) { 
     this.key = key; 
    } 

    public String getDownloadPayloadKey() { 
     return key; 
    } 

    public void setValue(String value) { 
     this.value = value; 
    } 

    public String getValue() { 
     return value; 
    } 
} 

我很困惑如何获取项目元素的列表。我似乎无法找到使项目成为POJO的方法,因为它没有结构。我如何使用RetrofitSimpleXmlConverter来实现上述目标?

回答

4

你会想了解一下如何使用SimpleXML

你的POJO的反序列化类是错误的,你想是这样的:

@Root(name = "downloads") 
public class Downloads { 
    @ElementList(entry = "item", inline = true) 
    private List<String> items; 
} 
+0

你的答案的工作!它被接受。@ Xyresic可以帮我反序列化DownloadPayload吗,我卡住了吗? –

+0

您需要一个包含“键”和“值”字符串类型的另一个根项目类。你的xml是DownloadPayload - > Item - >(key,value),而不是DownloadPayload - >(key,value),就像你在你的问题中一样。 – 0x1bad1d3a