2012-05-16 54 views
3

我尝试解析xml与SimpleXML库,我得到以下异常;当我把我的水域定义为一个列表时,无法弄清楚它为什么会抱怨。 我可能忽略了一些非常基本的东西,但我无法找到它。我几乎下面就http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#listSimpleXML:声明两次的元素

BTW给出的例子的模式:有一个similar question这里在计算器上,但它是一个不同的情况下,没有实际处理ElementLists。在我的情况下,我绝对想要一个ElementList,因此会认为,我的元素的多个存在实际上应该是确定的。

错误日志:

Error parsing xml. 
     org.simpleframework.xml.core.PersistenceException: Element 'gewaessereintrag' declared twice at line 9 
     at org.simpleframework.xml.core.Variable$Adapter.read(Variable.java:456) 
.... 

XML:

<?xml version="1.0" ?> 
<gewaesser> 
    <returncode>0</returncode> 
    <gewaessereintrag> 
     <id>1</id> 
     <name><![CDATA[Entry1]]></name> 
     <info><![CDATA[Info1.]]></info> 
    </gewaessereintrag> 
    <gewaessereintrag> 
     <id>2</id> 
     <name><![CDATA[Entry2]]></name> 
     <info><![CDATA[Info2.]]></info> 
    </gewaessereintrag> 
</gewaesser> 

WaterList(处理<gewaesser>):

@Root(name = "gewaesser") 
public class WaterList { 

    @ElementList(type = Water.class, name = "gewaessereintrag") 
    private List<Water> waters; 

    @Element(name = "returncode") 
    private String returncode; 

    public List<Water> getWaters() { 
     return waters; 
    } 
} 

水(处理<gewaessereintrag>):

@Root(name = "gewaessereintrag") 
public class Water { 

    @Element(required = false, name = "name") 
    private String name; 

    @Element(required = false, name = "info") 
    private String info; 

    @Element(required = false, name = "id", type = Long.class) 
    private Long id; 

} 

回答

4

我只是发现自己的答案,但也许这是对别人有帮助的:

我忘了申报“inline = true

@ElementList(type = Water.class, name = "gewaessereintrag", inline = true)