SimpleXML,将具有动态名称的子项转换为列表

时间:2014-06-17 14:58:15

标签: java android simple-framework

我正在使用SimpleXML http://simple.sourceforge.net/home.php  在我的Android应用程序中,

我从API中获取数据:

<Items>
   <data_0>
      <name> x1 </name>
      <phone> y1 </phone>
   </data_0>
   <data_1>
      <name> x2 </name>
      <phone> y2 </phone>
   </data_1>
   <data_2> ... </data_2>
      ...
   <data_n> ... </data_n>
</Items>

如何使用simpleXML编写POJO类,以便接受无限数量的<data_n>元素?

1 个答案:

答案 0 :(得分:2)

这是一个设计糟糕的XML文档,如果您对所收到的格式有任何影响,我建议请求更改:

<Items>
   <data id="0">
      <name> x1 </name>
      <phone> y1 </phone>
   </data>
   <data id="1">
      <name> x2 </name>
      <phone> y2 </phone>
   </data>
   <data id="2"> ... </data>
      ...
   <data id="n"> ... </data>
</Items>

就我个人而言,我甚至不会尝试为此设计POJO,而只是将XML(甚至简单地通过在字符串表示中使用字符串模式替换)清理为上面的格式(您甚至可以删除{{ 1}}属性完全如列表中的位置无论如何都会反映它,随后可以定义为id数据对象。

除非你能保证某个List个元素的最大数量(然后复制和粘贴几十个可怕名字的元素才能做到这一点),我认为你甚至不能为此设计一个POJO,因为您也不能为此文档定义XML Schema。

相关问题