Wie man XML nach java.util.Map konvertiert und umgekehrt

Ich suche eine Lightweight-API (vorzugsweise eine einzelne Klasse), um eine zu konvertieren

Map<String,String> map = new HashMap<String,String();

nach xml konvertieren und umgekehrt das XML zurück in eine Map.

Beispiel:

Map<String,String> map = new HashMap<String,String();
map.put("name","chris");
map.put("island","faranga");

MagicAPI.toXML(map,"root");

Ergebnis:

<root>
  <name>chris</chris>
  <island>faranga</island>
</root>

und zurück:

Map<String,String> map = MagicAPI.fromXML("...");

Ich möchte nicht verwendenJAXB oderJSON-Konvertierungs-API. Es muss sich nicht um verschachtelte Karten oder Attribute oder irgendetwas anderes kümmern, nur um diesen einfachen Fall. Irgendwelche Vorschläge?

Bearbeiten: Ich habe ein funktionierendes Copy & Paste-Beispiel erstellt. Dank anfvu undMichal Bernhard.

Laden Sie das neueste XStream-Framework herunter"Nur Kern" ist genug.

Map<String,Object> map = new HashMap<String,Object>();
map.put("name","chris");
map.put("island","faranga");

// convert to XML
XStream xStream = new XStream(new DomDriver());
xStream.alias("map", java.util.Map.class);
String xml = xStream.toXML(map);

// from XML, convert back to map
Map<String,Object> map2 = (Map<String,Object>) xStream.fromXML(xml);

Es sind keine Konverter oder etwas anderes erforderlich. Nur dasxstream-x.y.z.jar ist genug.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage