JAXB entpackt Elemente von XML zu Map

8

Ich habe eine XML-Datei. In dieser Datei haben einige der Elemente Attribute, die sich ändern. Ich möchte diese Attribute in eine Map einfügen. Wie mache ich das?

Mein XML ist:

%Vor%

Dabei kann das VARS -Element Attribute haben, die sich ändern, und ich weiß nicht im Voraus, was diese Elemente sein werden.

Ich habe eine Klasse für diesen Zweck erstellt:

%Vor%

Ich möchte das Element VARS einem Map zuordnen. Ich möchte, dass die Tags wie CAUSE , LOT Schlüssel und deren Werte die Werte in der Map sind. Ich habe einen XmlAdapater für diesen Zweck geschrieben:

%Vor%

Dieser Adapter gibt mir null für die Variable variableMap . Wie sollte der Adapter dafür modifiziert werden?

    
khateeb 28.11.2014, 06:18
quelle

1 Antwort

11

Sie könnten Folgendes tun:

XmlAdapter ( MapAdapter )

Sie könnten Folgendes für Ihre XmlAdapter tun, wo Sie eine Instanz von Map in ein Objekt mit einem List von DOM Element konvertieren. Sie erstellen die Instanzen von Element so, dass der Name der Schlüssel aus dem Map-Eintrag ist und der Textinhalt der Wert ist.

%Vor%

Optimierung der Verwendung von MapAdapter

Um die Leistung zu verbessern, möchten wir minimieren, wie oft DocumentBuiderFactory und DocumentBuilder instanziiert werden. Wir können dies tun, indem wir eine Instanz von MapAdapter für JAXB erstellen und sie auf Marshaller und Unmarshaller setzen. Auf diese Weise wird JAXB diese Instanz verwenden, anstatt jedes Mal eine neue zu erstellen, wenn der Adapter benötigt wird.

%Vor%

Wenn Sie MOXy als Ihren JAXB (JSR-222) Provider verwenden

Wenn Sie MOXy als Ihren JAXB-Provider verwenden, können Sie die Erweiterung @XmlVariableNode nutzen, um die Zuordnung dieses Anwendungsfalls zu vereinfachen:

Blaise Doughan 16.12.2014, 11:22
quelle

Tags und Links