2016-07-12 14 views
0

Sagen wir, ich habe eine XML unterbenötigen mehrere @XmlRootElement in einem XML zuzugreifen - Spring Batch

<?xml version="1.0" encoding="UTF-8"?> 
<results application="web" hostname="WIN"> 
    <test-node> 
     <element>1</element> 
    </test-node> 
    <node1 browser="chrome"> 
     <element2>2</element2> 
    </node1> 
</results> 

Ich möchte die meisten Attribute in dieser XML zu einer MySQL-Datenbank Batch mit Spring schreiben. Also habe ich eine Klasse, die wie unten aussieht

@XmlRootElement(name = "results") 
public class LowLevelSuiteFields { 

private String application; 
private String hostName; 

@XmlAttribute(name = "application") 
public String getApplication() { 
    return application; 
} 

public void setApplication(String application) { 
    this.application = application; 
} 

@XmlAttribute(name = "hostname") 
public String getHostName() { 
    return hostName; 
} 

public void setHostName(String hostName) { 
    this.hostName = hostName; 
} 

} 

Die Frage ist Ich möchte auch das Attribut zugreifen browser in node1. Ich kann nicht eine andere @XmlRootElement(name = "node1") haben und dann eine @XmlAttribute(name = "browser")

Der Grund ist, ich bin nur ein PreparedStatementSetter schaffen, die ItemPreparedStatementSetter<LowLevelSuiteFields> implementiert ... So kann ich nicht eine andere Klasse erstellen Sie einfach für eine andere XmlRootElement

Pls Hilfe .

Antwort

0

Eigentlich sollten Sie die @XmlElement Annotation für Ihr Element node1 verwenden.

Schauen Sie sich zum Beispiel JAXB tutorial from Vogella

an