2011-01-19 4 views
35

私はSimpleXmlを使ってPOJOを(de)シリアライズしています。今、私は必要のないいくつかの要素を持つ大きなXMLを持っています。例えば、このXMLで:文書を逆シリアル化する際に未使用のXML要素を無視する方法はありますか?

<Root> 
    <Element>Used</Element> 
    <Another>Not used</Another> 
<Root> 

私は次のようになりますPOJOを作成したい:

@Root 
class Root{ 
    @Element 
    private String element; 
} 

問題は、私はこの例外を取得していますということです。

simpleframework.xml.core.ElementException: Element 'Another' does not have a 
match in class blah.blah.Blah at line 1 

SoがXMLを正しく解析できるようにPOJOをどのように設定すればよいですか?

答えて

84

ルートアノテーション内でstrictをfalseに設定すると、クラスに表示されないXML要素または属性は無視されます。

Root root = serializer.read(Root.class, source, false); 
5

あなたは、単一の要素

@Element(required=false) 
private int statusCode; 

に(偽=必須)追加することができます。また、あなたがserialiserでXMLを読んだときfalseにstrictを設定

@Root(strict=false) 

より多くの要素がある場合は

@Root(strict=false) 
関連する問題