我正在使用 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
属性完全作为列表上的位置无论如何都会反射(reflect)它),随后可以将其定义为数据对象的 List
。
除非你能保证data
元素的最大数量(然后复制粘贴几十个可怕的命名元素就可以达到目的),我认为你甚至不能为此设计一个POJO,因为您无法同时为此文档定义 XML 架构。
关于java - SimpleXML,将具有动态名称的子项转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24267095/