我有一個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. 將Java XML轉換爲地圖
- 2. 如何將xml轉換爲Elixir中的地圖?
- 3. 如何將字符串xml轉換爲地圖<String,String>
- 4. 如何將數組轉換爲地圖?
- 5. 如何將forEach轉換爲地圖
- 6. 如何將地圖轉換爲遍歷
- 7. 將XML轉換爲嵌套地圖的地圖
- 8. 如何將SVG xml轉換爲BPMN2.0 xml
- 9. 將Multiset轉換爲地圖
- 10. 將scala地圖轉換爲java地圖
- 11. 將Java地圖轉換爲Javascript地圖
- 12. 將文本安全地轉換爲XML
- 13. 如何將地圖的地圖轉換爲Json
- 14. 如何將錶轉換爲地圖的地圖
- 15. 如何將xls文件轉換爲xml?
- 16. c#如何將csv轉換爲xml
- 17. 如何將這個XML轉換爲CSV
- 18. 如何將字符串轉換爲xml
- 19. 如何將xml轉換爲schematron
- 20. 如何將XML轉換爲MessageElement [] Java
- 21. 如何將XML文件轉換爲DataSource?
- 22. 如何將XML轉換爲JSON?
- 23. Actionscript 3 - 如何將XMLList轉換爲XML?
- 24. 如何將XML轉換爲PHP
- 25. 如何將xml文件轉換爲mysql?
- 26. 如何將XML轉換爲C#對象
- 27. 如何將xml轉換爲xsd in oracle
- 28. 如何將URL轉換爲XML
- 29. 如何將PDF轉換爲XML
- 30. 如何將XML數據轉換爲data.frame?
Java已經建成[JAXB(HTTP://en.wikipedi a.org/wiki/Java_Architecture_for_XML_Binding)。 – 2013-03-09 00:17:53