मैं Xstream उपयोग कर रहा हूँ और एक वर्ग एक क्षेत्र के साथ निम्नलिखित की तरह:एक्सस्ट्रीम कस्टम कनवर्टर जो सूची से फ्लैट एक्सएमएल संरचना उत्पन्न कर सकता है?
<key1>test data</key1>
<key2>test data</key2>
<key3>test data</key3>
तो मैं मानचित्र कुंजी होना चाहते हैं:
private Map<String, String> data;
मैं इस तरह XML आउटपुट उत्पन्न करना चाहते हैं तत्व। नक्शा एक्सएमएल मान होने के लिए और मैं नहीं चाहता कि एक्सएमएल <data></data>
जैसे तत्व में लपेटा गया हो। क्या कोई नमूना कोड इंगित कर सकता है जो ऐसा करता है, या कुछ समान है?
अद्यतन
यह सिर्फ एक टुकड़ा है, वहाँ एक मूल तत्व है।
अद्यतन 2
कस्टम कनवर्टर कोड मैं नीचे तैनात लगभग काम करता है। मुझे एक फ्लैट संरचना मिलती है, लेकिन मुझे बाहरी तत्व को हटाने की जरूरत है। उस पर कोई विचार?
//this is the result need to remove <data>
<data>
<key1>test data</key1>
<key2>test data</key2>
<key3>test data</key3>
</data>
इस कोड
public class MapToFlatConverter implements Converter{
public MapToFlatConverter() {
}
@Override
public boolean canConvert(Class type) {
return Map.class.isAssignableFrom(type);
}
@Override
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
Map<String, String> map = (Map<String, String>) source;
for (Map.Entry<String, String> entry : map.entrySet()) {
writer.startNode(entry.getKey());
writer.setValue(entry.getValue().toString());
writer.endNode();
}
}
@Override
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
//not needed at this time
return null;
}
}
वैध एक्सएमएल एकाधिक जड़ तत्व नहीं होना चाहिए। – dummy
यह सिर्फ एक स्निपेट है। एक मूल तत्व है। मैं सिर्फ सूची तत्वों को फ्लैट दिखाना चाहता हूं। –
करीबी वोटों के साथ क्या है? ऐसा लगता है कि एसओ के लिए बनाया गया था। –