我正在使用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>元素?

最佳答案

那是一个设计糟糕的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(甚至只是通过在字符串表示中使用字符串模式替换)清理成上述格式(您甚至可以完全摆脱id属性)因为列表上的位置无论如何都会反映出来),随后可以将其定义为数据对象的List

除非您可以保证最大数量的data元素(然后复制并粘贴数十个可怕的命名元素即可达到目的),否则我认为您甚至不能为此设计POJO,因为您也无法定义本文档的XML模式。

关于java - SimpleXML,将具有动态名称的子代转换为列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24267095/

10-09 07:24