У меня возникла проблема, когда я пытаюсь использовать строку paser xml для объекта с использованием библиотеки SimpleXML (версия 2.7.1).
Это моя строка:
<tbody>
<tr>
<th></th>
<th>Weather</th>
<th><img src="http://localhost:8080/img/today" /></th>
<th><img src="http://localhost:8080/img/today_1" /></th>
<th><img src="http://localhost:8080/img/today_2" /></th>
</tr>
<tr>
<td><img src="http://localhost:8080/img/location_1" /></td>
<td> <a href="/Ney-tag/" title="Ney" target="_blank" style="color:#7A2200;">Ney</a> </td>
<td> 14 </td>
<td> 15 </td>
<td> 16 </td>
</tr>
<tr>
<td><img src="http://localhost:8080/img/location_2" /></td>
<td> <a href="/Pana-tag/" title="Pana" target="_blank" style="color:#7A2200;">Pana</a> </td>
<td> 30 </td>
<td> 31 </td>
<td> 30 </td>
</tr>
<tr>
<td><img src="http://localhost:8080/img/location_3" /></td>
<td> <a href="/Sin-tag/" title="Sin" target="_blank" style="color:red;font-weight:bold;">Sin</a> </td>
<td> 32 </td>
<td> 33 </td>
<td> 36 </td>
</tr>
</tbody>
А это моя модель:
@Root
public class TBody {
@ElementList
List<TR> tr;
}
public class TR {
@ElementList(entry = "th")
List<TH> th;
@ElementList(entry = "td")
List<TD> td;
public TR() {
}
public static class TH {
@Element
String th;
@Element
IMG img;
public TH() {
// TODO Auto-generated constructor stub
}
}
public static class IMG{
@Element
String img;
@Attribute
String src;
public IMG() {
}
}
public static class TD {
@Element
IMG img;
@Element
String td;
@Element
A a;
}
public static class A{
@Element
String a;
@Attribute
String href;
@Attribute
String title;
@Attribute
String target;
@Attribute
String style;
public A() {
}
}
}
Это трассировка logcat:
05-12 23:14:46.711 W/System.err﹕ org.simpleframework.xml.core.ValueRequiredException:
Unable to satisfy @org.simpleframework.xml.ElementList(data=false, empty=true, entry=td, inline=false, name=, required=true, type=void) on field 'td' java.util.List
com.example.model.TR.td for class com.example..model.TR at line 3
05-12 23:14:46.711 W/System.err﹕ at org.simpleframework.xml.core.Composite.validate(Composite.java:644)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.readElements(Composite.java:449)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.read(Composite.java:201)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.read(Composite.java:148)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.CompositeList.populate(CompositeList.java:175)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.CompositeList.read(CompositeList.java:120)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.readVariable(Composite.java:623)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.readElement(Composite.java:532)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.read(Composite.java:201)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Composite.read(Composite.java:148)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Persister.read(Persister.java:625)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Persister.read(Persister.java:606)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Persister.read(Persister.java:584)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Persister.read(Persister.java:562)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Persister.read(Persister.java:499)
05-12 23:14:46.715 W/System.err﹕ at org.simpleframework.xml.core.Persister.read(Persister.java:408)
Может ли кто-нибудь помочь мне понять причину здесь?
Спасибо!
inline=true
к имеющимся у вас@ElementList
. - person EpicPandaForce   schedule 12.05.2015type=TD.class
,type=TH.class
,type=TR.class
для списков элементов, где это необходимо, а также добавьте аннотацию@Root
ко всем вашим классам, а не толькоTBody
. - person EpicPandaForce   schedule 13.05.2015required=false
для TD и TH. - person EpicPandaForce   schedule 13.05.2015