ich ein Objekt haben Schüler genannt wie diesesXML-Datei mit dem gleichen Element wie Kind und Eltern zu lesen und auf das Objekt
class Student{
int a;
String name;
List<Student> childStudents;
}
und meine xml sieht wie folgt aus
<root>
<student>
<a>1</a>
<name>ABC</name>
</student>
<student>
<a>2</a>
<name>XYZ</name>
<student>
<a>3</a>
<name>PQR</name>
</student>
</student>
</root>
Nun, was ich will, ist lese das XML und fülle die Werte zu den Studentenobjekten, im ersten Studentenobjekt gemäß XML habe nur die Werte "a" und "name" nur es hat keine Liste der untergeordneten Schüler, aber im zweiten Element in xml hat "a, name" und Kind Student, die gleiche wie Eltern Objekt Student "a, Name und Liste der Schüler", so was ich will, ist wie pro Xml-Wert s füllen die Objekte mit ersten studnet wie dieses
Student
[ a =1
name = "ABC"
listofStudents = null;
]
und zweiten Objekt wie diese
Student
[ a =2
name = "XYZ"
listofStudents = (size)1;
Student[
a = 3
name = "PQR"
listofStudents = null;
]
]
Any One gleichen hat fügen Sie bitte Link, ist Extrakt Szenario nicht nur gleiche Probe vereinfachte Weise, die ich in dem genannten Frage zu bekommen verstehen
ich habe versucht, so etwas wie dieses
public void A(){
nodeList = doc.getElementsByTagName("student");
for (int msgIndex = 0; msgIndex < nodeList.getLength(); msgIndex++) {
Node message = nodeList.item(msgIndex);
if (message.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) message;
String msgName = eElement.getAttribute("a");
String msgCateg = eElement.getAttribute("name");
Student msg = new Student();
msg.setMsgName(msgName);
msg.setMsgA(msgCateg);
}
}
}
2. Versuch für Lösung, die ich versuchte, war
import java.util.ArrayList;
import java.util.List;
/**
* Created by sadeeshal on 3/30/2016.
*/
public class Book {
String author;
double price;
String pubdate;
List<Book> listOfBooks = new ArrayList<Book>();
public void addBookToList(Book b) {
getListOfBooks().add(b);
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getPubdate() {
return pubdate;
}
public void setPubdate(String pubdate) {
this.pubdate = pubdate;
}
public List<Book> getListOfBooks() {
return listOfBooks;
}
public void setListOfBooks(List<Book> listOfBooks) {
this.listOfBooks = listOfBooks;
}
}
und XML lesen
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.ArrayList;
/**
* Created by sadeeshal on 3/30/2016.
*/
public class XML {
public static void main(String[] args) {
XML xml = new XML();
xml.readXML();
}
public void readXML(){
try {
File file = new File("C:/Users/sadeeshal/Downloads/A.xml");
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = dBuilder.parse(file);
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("book");
Book bookParent = new Book();
read(nodeList, bookParent);
} catch (Exception e) {
System.out.print(e.getMessage());
}
}
public void read(NodeList nList,Book bookParent){
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
String name = eElement.getElementsByTagName("author").item(0).getTextContent();
String pric = eElement.getElementsByTagName("price").item(0).getTextContent();
String pub = eElement .getElementsByTagName("pubdate").item(0).getTextContent();
Book book = new Book();
book.setAuthor(name);
book.setPrice(Double.parseDouble(pric));
book.setPubdate(pub);
if(nNode.hasChildNodes()){
read(((Element) nNode).getElementsByTagName("book"),book);
bookParent.addBookToList(book);
}
}
}
}
}
XML Datei
<?xml version="1.0"?>
<books>
<book>
<author>Carson</author>
<price>31.95</price>
<pubdate>05/01/2001</pubdate>
<book>
<author>CarsonCild</author>
<price>1.95</price>
<pubdate>05/01/2011</pubdate>
</book>
</book>
<book>
<author>CarsonTwo</author>
<price>30.95</price>
<pubdate>05/01/2101</pubdate>
</book>
</books>
und es wurde geladen, wie
folgtAber was muss eigentlich passieren wird, ist nicht wie carsonChild img nur einzelnes Objekt unter dem Array von listofbooks nicht an einem übergeordneten
Was ist die Frage? kannst du es umschreiben, um klar zu machen, was du verlangst? –
Hallo @ PedroG.Dias überprüfen Sie bitte jetzt – Razor
ich so etwas wie dies versucht haben, in der Frage es selbst erwähnt. Duno, wie man Unterschüler korrekt liest und es an Elternschüler setzt – Razor