[英]Android SimpleXML Parsing seems limited in Depth
我正在嘗試使用Retrofit和SimpleXML在Android上讀取配置文件。
我已經設置了依存關系和有效的XML方案。 簡單的XML開始解析我的文檔,但是當它達到某個標簽/深度時,它將失敗並顯示以下錯誤
Caused by: retrofit.converter.ConversionException: org.simpleframework.xml.core.ElementException: Element 'Host' does not have a match in class
Caused by: org.simpleframework.xml.core.ElementException: Element 'Host' does not have a match in class
我的xml的一部分看起來像這樣:
<Config>
...
<Identity>
<Address>
<Host>...</Host>
...
</Address>
...
</Identity>
...
</Config>
它解析所有內容,直到到達Host
標簽為止, Host
標簽是嵌套在其中的第一個元素。 給出的錯誤通常表示缺少注釋,但是在這種情況下,應按原樣對其進行注釋。 我的映射對象如下所示:
@Root(name="Config")
public class Config {
@ElementList(entry="Identity", inline=true)
private List<Identity> mIdentities;
@Root(name="Identity")
static class Identity {
@Element(name="Address")
private Address mAddress;
...
}
@Root(name="Address")
static class Address {
@Element(name="Host")
private String mHost;
...
}
}
是否還有其他人遇到過類似的問題並且知道可能是什么問題? 還是SimpleXML受其可以達到的深度限制? 也許這是與ListElement有關的問題? 我找不到任何提及任何問題的文檔。
此異常表示缺少注釋或類與xml之間的映射錯誤。 也許嵌套不正確,使用了錯誤的注釋等。
很難在這里說出原因是什么,但是請確保您的代碼看起來像這樣:
(偽代碼,而不是睾丸!)
@Root(name = "Address")
public class Address
{
@Element(name="Host")
private String mHost;
// more things here ...
}
您能否至少測試一下您的問題,或者至少顯示地址的實現方式? 順便說一句。 嘗試相反的方向總是很有幫助的:取一個Config
對象,對其進行序列化,然后檢查它是否按您的要求構造。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.