简单的XML框架:XML结构问题

时间:2014-05-21 03:32:51

标签: android xml-parsing simple-framework

我的外部XML源具有此结构

<NewDataSet>
  <Table>
    <department>HR</department>
    <depno>01</depno>
  </Table>
  <Table>
    <department>IT</department>
    <depno>02</depno>
  </Table>
</NewDataSet>

但Simple XML Framework期望这种结构

<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());

1 个答案:

答案 0 :(得分:1)

使用内嵌

似乎这个问题已在官方文档中得到解决。 http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#inline

  

处理第三方XML或包含分组的XML时   相关元素的共同格式涉及存在的元素   没有包装父元素的序列。为了适应   这样的结构元素列表注释可以配置为   忽略列表的父元素。

@Root
public class NewDataSet {

    @ElementList(inline = true, entry = "Table")
    public List<Table> Tables;
}