2012-01-14 20 views
3

Iveはandroidのsimplexmlフレームワークで奇妙な問題を抱えています。私はXMLソースからweatherdataというオブジェクトを読み込んで埋めようとしています。アンドロイドのシンプルなXMLフレームワーク、クラス属性

XMLファイル(この1の制御なし):

<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しようとすると、気にしません。私がプロジェクタでコンストラクタを使ってpointDataクラスを作成しても、エラーは変わりません。これは、単純なxmlフレームワーク2.6.2で予約されたキーワード混乱として "クラス"のように見えます。

xmlを変更することはできません。どのように私はそれを解決することができましたか?先にありがとう。

+0

XML要素のすべての属性を保存してから、後でそれを解析する方法はありますか。あなたはSimpleXMLを読んで、次にそれをリンクする必要があります;-) – Blundell

+0

ああ、かなりよく知られているのでリンクする必要はないと思っていました。とにかくここにあります:http://simple.sourceforge.net/。私はすでにそれを深く研究し、jaxbで生成されたクラスを単純なxmlに変換しました。それは魅力のようになり、私はそれのためにsimpleXmlを愛しました。私が最初にブロックしたのです。 – Gomoku7

答えて

7

TreeStrategyを使用して、「クラス」を他のものに置き換えてみてください。

Strategy strategy = new TreeStrategy("clazz", "len"); // clazz substitute for class, 
                 // and len for array lengths 
Serializer serializer = new Persister(strategy); 
+0

おもしろそうですね。 Thnaks! – Gomoku7

+0

チャームのように働いた! – Gomoku7

関連する問題