我在android上使用simplexml框架时遇到了一个奇怪的问题。我试图从xml源读取并填充一个名为weatherdata的对象。
XML文件(无法控制此文件):
<weatherdata>
<product class="pointData">
....
</product>
</weatherdata>
所以我的java文件看起来像:
@Root(name = "weatherdata", strict=false)
public class Weatherdata {
@Element(name="product", required = true)
protected ProductType product;
但是我得到了一个非常奇怪的错误:
01-14 14:22:28.919: W/System.err(18011): java.lang.ClassNotFoundException: pointData in loader dalvik.system.PathClassLoader
如果我在@Element字段中尝试class = ProductType.class,它就不在乎了。即使我使用构造函数在projet中创建pointData类,错误也不会改变。它看起来像“class”作为保留的关键字混乱与简单的xml框架2.6.2。
我无法更改xml。知道如何解决这个问题吗?谢谢你。
答案 0 :(得分:7)
尝试使用TreeStrategy将“class”替换为其他内容。
Strategy strategy = new TreeStrategy("clazz", "len"); // clazz substitute for class,
// and len for array lengths
Serializer serializer = new Persister(strategy);