Ich versuche, eine POJO zu einem XML mit der Marshaller Klasse in Java zu serialisiert. Gibt es eine Möglichkeit, einige bekannte Zeichen zu entfernen (*, +, -) während dieser marshal() Operation?Filtering Zeichen während Marschall() Betrieb von Marshaller Klasse in Java
0
A
Antwort
0
Hier ist ein einfacher Weg mit einem JAXB Adapter, wenn die zu entfernenden Zeichen für String-Instanzen sind. Wenn es für andere Klassen ist, bleibt die allgemeine Logik, die hier präsentiert wird, gleich.
Adapter Klasse:
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class StringAdapter extends XmlAdapter<String, String> {
@Override
public String unmarshal(String string) throws Exception {
return string;
}
@Override
public String marshal(String string) throws Exception {
return string.replaceAll("[*+-]", "");
}
}
dann Ihre XMLAdapter um konfigurieren, dass er während des Marshalling verwendet wird.
Sie können in der jaxb tun, Datei-Bindung (http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html), wenn Sie es für alle pojo Klassen mit JAXB verallgemeinern wollen, oder Sie können in den Ziel pojo Klassen über Annotation auf dem String-Feld direkt den Adapter gelten:
@XmlJavaTypeAdapter(value = StringAdapter.class)
private String string;