2011-01-19 5 views
35

मैं पीएमजेओ को क्रमबद्ध करने के लिए SimpleXml (डी) का उपयोग कर रहा हूं। अब, मेरे पास एक बड़ा एक्सएमएल है जिसमें कुछ तत्व हैं जिनकी आवश्यकता नहीं है। उदाहरण के लिए, इस XML के साथ:किसी दस्तावेज़ को deserializing करते समय अप्रयुक्त 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. .. मुझे POJO को कैसे कॉन्फ़िगर करना चाहिए ताकि मैं XML को सही तरीके से पार्स कर सकूं?

उत्तर

84

किसी भी XML तत्व या विशेषताओं को अनदेखा करने के लिए रूट एनोटेशन के भीतर strict को झूठी करने के लिए सेट करें।

@Root(strict=false) 

वैकल्पिक रूप से, गलत पर strict सेट जब आप serialiser में एक्सएमएल पढ़ें:

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

आप एक ही तत्व

@Element(required=false) 
private int statusCode; 

को जोड़ सकते हैं (अपेक्षित = false) यदि आपके पास अधिक तत्व हैं

@Root(strict=false)