Ich probiere die Simple XML serializer aus. Ich interessiere mich mehr für die Deserialisierung von XML-> Java. Hier ist mein Code als Einheit Test:Einfache XML-Deserialisierung
import java.io.StringReader;
import java.io.StringWriter;
import junit.framework.TestCase;
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
public class SimpleTest extends TestCase {
public void testWriting() throws Exception {
StringWriter writer = new StringWriter();
Address address = new Address("1234 Main Street", "San Francisco", "CA");
Serializer serializer = new Persister();
serializer.write(address, writer);
System.out.println("Wrote: " + writer.getBuffer());
}
public void testReading() throws Exception {
String input = "<address street='1234 Main Street' city='San Francisco' state='CA'/>";
Serializer serializer = new Persister();
System.out.println("Read back: " + serializer.read(Address.class, new StringReader(input)));
}
}
@Root
class Address {
@Attribute(name="street")
private final String street;
@Attribute(name="city")
private final String city;
@Attribute(name="state")
private final String state;
public Address(@Attribute(name="street") String street, @Attribute(name="city") String city, @Attribute(name="state") String state) {
super();
this.street = street;
this.city = city;
this.state = state;
}
@Override
public String toString() {
return "Address [city=" + city + ", state=" + state + ", street=" + street + "]";
}
}
Dies funktioniert, aber die wiederholten @Attribute
Annotationen (auf dem Feld und im Konstruktorargument) in der Adressklasse hässlich aussehen. Gibt es einen Weg zu:
- haben Sie einfach herauszufinden, den Attributnamen aus dem Feldnamen?
- haben einfach ignorieren Serialisierung, so dass ich kommen kommentieren entweder die Felder oder das Konstruktorargument?
Wenn Sie nach einfacher XML-> Java-Deserialisierung suchen und nicht an ein bestimmtes Paket gebunden sind, hier ist eine Alternative: http://sourceforge.net/projects/practicalxml/ (Beachten Sie, dass ich dies nicht gestellt habe als eine Antwort, weil Sie sehr glücklich scheinen downvote, das ist kein guter Weg, um die Leute zu behandeln, die versuchen, Ihnen zu helfen) – kdgregory
@ kdgregory Danke, ich bin nicht an ein bestimmtes Paket gebunden - ich werde practicalxml überprüfen. Bitte nehmen Sie die Downvotes nicht zu persönlich - die angebotenen Vorschläge konnten mein Problem nicht lösen und waren laut, IMO. –
@kdgregory Auf den zweiten Gedanken war ich zu glücklich. Entschuldigung an alle. –