我有一个HashMap,我想将其转换为XML文件。这个tutorial demonstrates如何用XStream做到这一点,它的工作原理非常奇妙。但是,就我而言,我不需要将XML解组到映射。因此解组方法变得过分。 XStream中有没有另一种方法来实现我想要执行的操作,而无需实现unmarshall方法。还是有另一个友好的对象来XML api,我可以用它来实现这一目标?如何将地图转换为XML
0
A
回答
1
我决定延伸MapConverter并覆盖其名帅方法:
public static class MapEntryConverter extends MapConverter {
public MapEntryConverter(Mapper mapper) {
super(mapper);
}
public boolean canConvert(Class clazz) {
return ListMultimap.class.isAssignableFrom(clazz);
}
public void marshal(Object value, HierarchicalStreamWriter writer,
MarshallingContext context) {
ListMultimap<String, String> map = (ListMultimap<String, String>) value;
for (String key : map.keys()) {
writer.startNode(key);
writer.setValue(map.get(key).get(0));
writer.endNode();
}
}
}
而且我用这个转换器,当我马歇尔我的地图:
ListMultimap<String, String> multimap = LinkedListMultimap.create();
multimap.put("x", "1");
multimap.put("x", "2");
multimap.put("y", "3");
XStream xStream = new XStream(new DomDriver());
xStream.registerConverter(new MapEntryConverter(xStream.getMapper()));
xStream.alias("add", multimap.getClass());
String xml = xStream.toXML(multimap);
System.out.println(xml);
0
如果你需要实现一半的接口(OO纯粹主义者不寒而栗),最好的办法可能是这样:
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
throw new UnsupportedOperationException("Write this message");
}
相关问题
- 1. 如何将xml转换为Elixir中的地图?
- 2. 如何将地图转换为遍历
- 3. 如何将forEach转换为地图
- 4. 如何将SVG xml转换为BPMN2.0 xml
- 5. 将文本安全地转换为XML
- 6. 如何将表转换为地图的地图
- 7. 如何将地图的地图转换为Json
- 8. 如何将xml源转换为html
- 9. 如何将Python对象转换为XML?
- 10. 如何将字符串转换为xml
- 11. 如何将XML数据转换为data.frame?
- 12. 如何将XML数据转换为NSMutableArray
- 13. 如何将C#数组转换为XML
- 14. 如何将XML转换为JSON?
- 15. 如何将JSON字典转换为XML?
- 16. 如何将datatable转换为xml?
- 17. 如何将PDF转换为XML
- 18. 如何将.txt转换为XML
- 19. 如何将xls文件转换为xml?
- 20. c#如何将csv转换为xml
- 21. 如何将xml文件转换为mysql?
- 22. 如何将此XML转换为KML?
- 23. Kxml2如何将xml转换为wbxml?
- 24. 如何将dom4j xml转换为Swing Jtree?
- 25. 如何将XML转换为词典
- 26. 如何将XML文件转换为ArrayList
- 27. 将XML转换为XML,将属性转换为元素
- 28. 如何将“:”殖民地名称从XML转换为XSD架构?
- 29. 通过XML将图像转换为HTML
- 30. 将XML数据转换为ER图
Java已经建成[JAXB(HTTP://en.wikipedi a.org/wiki/Java_Architecture_for_XML_Binding)。 – 2013-03-09 00:17:53