我的外部XML源具有以下结构
<NewDataSet>
<Table>
<department>HR</department>
<depno>01</depno>
</Table>
<Table>
<department>IT</department>
<depno>02</depno>
</Table>
</NewDataSet>
但是简单XML框架期望这种结构
<NewDataSet>
<Tables>
<Table>
<department>HR</department>
<depno>01</depno>
</Table>
<Table>
<department>IT</department>
<depno>02</depno>
</Table>
</Tables>
</NewDataSet>
这是我的NewDataSet类
@Root
public class NewDataSet {
@ElementList
public List<Table> Tables;
}
这是我的Table类
@Element
public class Table {
@Element
private String department;
@Element
private String depno;
}
如何编写正确的类来匹配我的外部XML源?在这个程序中使用的这些类
String url = "http://";
String xmlData = retrieve(url);
Reader reader = new StringReader(xmlData);
Serializer serializer = new Persister();
NewDataSet nds = serializer.read(NewDataSet.class, reader, false);
Log.d(MainActivity.class.getSimpleName(), nds.toString());
使用内联
似乎这个问题已经在官方文档中解决了。http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php内联
处理第三方XML或包含分组的XML时在相关元素中,通用格式包含要存在的元素没有包装父元素的序列。为了适应元素列表注释可以配置为这样的结构忽略列表的父元素
@Root
public class NewDataSet {
@ElementList(inline = true, entry = "Table")
public List<Table> Tables;
}