I Arraylist mit Objekten, die jeweils folgende Elemente enthalten:Wie Arraylist als XML speichern
- Jersey Nummer
- Vorname
- Nachname
- Bevorzugte Position
- Tore
Assists
ArrayList <blackTeam> blackTeam = new ArrayList <blackTeam>(); ... public class blackTeam { int goals, assists; String jerseyNum, firstName, lastName, prefPosition; blackTeam (String _jerseyNum, String _firstName, String _lastName, String _prefPosition, int _goals, int _assists) { jerseyNum = _jerseyNum; firstName = _firstName; lastName = _lastName; prefPosition = _prefPosition; goals = _goals; assists = _assists; } }
Dies ist mein Code für die Daten als XML speichern:
try {
String filepath = "blackTeam.xml";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
Element root = doc.createElement("BlackTeam");
doc.appendChild(root);
for (int i = 0; i < blackTeam.size(); i++) {
Element player = doc.createElement("Player");
root.appendChild(player);
Element jerseyNum = doc.createElement("JerseyNum");
jerseyNum.appendChild(doc.createTextNode(blackTeam.get(i).jerseyNum));
player.appendChild(jerseyNum);
Element firstName = doc.createElement("FirstName");
firstName.appendChild(doc.createTextNode(blackTeam.get(i).firstName));
player.appendChild(firstName);
Element lastName = doc.createElement("LastName");
lastName.appendChild(doc.createTextNode(blackTeam.get(i).lastName));
player.appendChild(lastName);
Element prefPosition = doc.createElement("PrefferedPosition");
prefPosition.appendChild(doc.createTextNode(blackTeam.get(i).lastName));
player.appendChild(prefPosition);
Element goals = doc.createElement("Goals");
goals.appendChild(doc.createTextNode(String.valueOf(blackTeam.get(i).goals)));
player.appendChild(goals);
Element assists = doc.createElement("Assists");
assists.appendChild(doc.createTextNode(String.valueOf(blackTeam.get(i).assists)));
player.appendChild(assists);
}
//write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(filepath));
transformer.transform(source, result);
System.out.println("Done");
}catch(ParserConfigurationException pce){
pce.printStackTrace();
}catch(TransformerException tfe){
tfe.printStackTrace();
}catch(IOException ioe){
ioe.printStackTrace();
}catch(SAXException sae){
sae.printStackTrace();
}
ich das ausgegebene XML will wie in diesem Beispiel aussehen:
<blackTeam>
<player>
<jerseyNumber>56</jerseyNumber>
<firstName>John</firstName>
<lastName>Smith</lastName>
<preferredPosition>Center</preferredPosition>
<goals>45</goals>
<assists>13</assists>
</player>
<player>
<jerseyNumber>43</jerseyNumber>
<firstName>Bill</firstName>
<lastName>Jones</lastName>
<preferredPosition>Defense</preferredPosition>
<goals>12</goals>
<assists>27</assists>
</player>
<blackTeam>
Wenn ich meinen Code ausführen ich :
[Schwerwiegender Fehler] blackTeam.xml: 1: 1: Vorzeitiges Ende der Datei. org.xml.sax.SAXParseException; systemId: file: /// D: /Computer%20Science%2012/League_Database/blackTeam.xml; Zeilennummer: 1; Spaltennummer: 1; Vorzeitiges Ende der Datei.
ich ziemlich sicher, dass diese Linie einen Fehler verursacht:
Document doc = docBuilder.parse(filepath);
Kann mir jemand erklären, warum mein Code funktioniert nicht und eine Lösung bieten?
Das scheint es behoben zu haben, danke! @SilverNak – ckorvee
Gern geschehen! – SilverNak