2011-09-06 25 views
1

我似乎無法得到這個底部 - 任何幫助非常感謝!simpleframework xml和@ElementList for Android上的kml問題

我使用簡單的XML-2.3.2.jar與Android V10

所以我有這樣的XML(KML):

<kml xmlns="http://www.opengis.net/kml/2.2"> 
<Document> 
<Placemark> 
<name>Admissions</name> 
<description>60.59</description> 
<Polygon><tessellate>1</tessellate><outerBoundaryIs> 
<LinearRing> 
<coordinates>-1.1949914,52.93765,0 -1.1946743,52.937794,0 -1.1946228,52.93776,0 -1.1936871,52.938156,0 -1.19373,52.93821,0 -1.1933881,52.93836,0 -1.1935841,52.938503,0 -1.19424,52.938213,0 -1.1951548,52.93781,0 -1.1949914,52.93765,0</coordinates> 
</LinearRing> 
</outerBoundaryIs></Polygon> 
</Placemark> 
</Document> 
</kml> 

而且我已經爲反序列化它使這些類:

KML.java

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Root; 

@Root(name="kml",strict=false) 
public class KML { 
    @Element(required=true,name="Document") 
    public Document document; 
} 

Document.java

import java.util.List; 

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.ElementList; 

@Element 
public class Document { 
    @ElementList(required=false,inline=true) 
    public List<Placemark> placemarkList; 
} 

Placemark.java

import java.util.List; 

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.ElementList; 

@Element 
public class Placemark { 
    @Element(required=false) 
    public String name; 

    @Element(required=false) 
    public String description; 

    @Element(required=false,name="Polygon") 
    public Polygon polygon; 
} 

如果我跑,我得到:org.simpleframework.xml.core.ElementException:元素 '地標' 並不在行有比賽 - 1

如果我用@Element替換Document.java中的@ElementList,那麼它就可以工作,但當然只有在有一個子地標元素的地方!

非常感謝, 戴夫

回答

2

我有同樣的問題。嘗試在ElementList註釋中添加entry="Placemark"

@Element 
public class Document { 
    @ElementList(inline=true, entry="Placemark", required=false) 
    public List<Placemark> placemarkList; 
}