2017-01-04 5 views
0

ich eine XML haben, die wie Benötigen Sie auf JAXB helfen

<Book> 
    <Name>Book1</Name> 
    <Cost>20$</Cost> 
</Book> 
unter

sieht

ich eine Bean-Klasse mit Eigenschaften Name, Kosten verwendet haben und unmarshal erfolgreich die XML-Datei Inhalt Bean-Objekt zu buchen.

Jetzt möchte ich mehrere Buchobjekte in der gleichen XML-Datei wie unten haben.

<Books> 
    <Book> 
    ... 
    </Book> 
    <Book> 
    ... 
    </Book> 

Ich weiß, dass ich noch eine Klasse mit dem Namen Books.java erstellen und haben eine Arraylist von Buch mit @XmlElement Tag kommentierte Objekte und entordnen es.

Aber ich möchte nicht noch eine öffentliche Klasse dafür verschwenden. Kann jemand mich wissen lassen, wenn es andere Möglichkeit gibt, diese XML-Datei mit JaxB zu analysieren.

Vielen Dank im Voraus.

+0

gut im Idealfall sollte es andere Bücher Klasse sein, kann ich mich nicht von anderer Weise als dass Aber wenn Ihr Anliegen eine extra öffentliche Klasse ist, können Sie vielleicht eine Bücher-Klasse haben und die Buch-Klasse kann eine innere Klasse darin sein. –

+0

Yup. Ich kann das tun, aber das Problem ist, wenn ich Inner Class verwende, dann kann ich nicht auf Buch-Bean-Klassenmethoden in anderen Klassen zugreifen. Ich muss einige Methoden schreiben und Hilfe von Books.java Klasse – Sandeep

+0

nehmen Nun können Sie eine öffentliche statische Buchklasse innerhalb der Bücher Klasse haben, so dass es auch außerhalb verfügbar wäre. –

Antwort

0

die Lösung gefunden ..

Ich kann wie unten eine Klasse haben. Ich kann Liste Liste verwenden; variables Mitglied innerhalb derselben Klasse Book.java, anstatt eine weitere öffentliche Klasse Books.java zu verwenden.

@XmlRootElement(name = "Books") 

@XmlAccessorType (XmlAccessType.FIELD) public class BookBean {

private String name; 
private String cost; 

@XmlElement(name = "Books") 
public List<BookBean> books; 

public BookBean(){ 

} 

public BookBean(String s1, String s2){ 
    name=s1; 
    cost=s2; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

public String getCost() { 
    return cost; 
} 

public void setCost(String cost) { 
    this.cost = cost; 
} 

public List<BookBean> getBooks() { 
    return books; 
} 

public void setBooks(List<BookBean> books) { 
    this.books = books; 
} 

}

Verwandte Themen