dimanche 17 mai 2015
DOM Parser Implementieren
Posted on 16:14 by verona
Hallo,
ich hoffe sehr, dass sie mir helfen können.
Ich muss einen DOM Parser implementieren, der folgendes xml-Dokument einliest:
[xml]
<?xmlversion="1.0"encoding="UTF-8"?>
<Studentendaten>
<Student>
<Name>
<Anrede>Herr</Anrede>
<Vorname>Max</Vorname>
<Nachname>Mustermann</Nachname>
</Name>
<Matrikelnummer>12345678</Matrikelnummer>
<Anschrift>
<Strasse>Waldstrasse</Strasse>
<Hausnummer>125</Hausnummer>
<Ort>Berlin</Ort>
<Plz>12345</Plz>
</Anschrift>
<LieferAnschrift>
<Strasse>Waldstrasse</Strasse>
<Hausnummer>100</Hausnummer>
<Ort>Berlin</Ort>
<Plz>12345</Plz>
</LieferAnschrift>
<Kontodaten>
<Kontonummer>123 456 789 00</Kontonummer>
<Blz>200 150 00</Blz>
<Kontoinhaber>Mustermann</Kontoinhaber>
</Kontodaten>
<Leistungsnachweis>
<Kurs>20400</Kurs>
<Note>1.0</Note>
<GesamtPunkte>100</GesamtPunkte>
<Datum>10.03.2015</Datum>
<AnzVersuche>1</AnzVersuche>
</Leistungsnachweis>
<SchriftlicheArbeitArt="Bachelorarbeit">
<Thema>Informationssysteme</Thema>
<Note>1,0</Note>
<Betreuer>Prof. Muster</Betreuer>
<Abgabedatum>20.04.2015</Abgabedatum>
</SchriftlicheArbeit>
<Anmerkung>Sonstiges...</Anmerkung>
</Student>
</Studentendaten>
[/xml]
Die Eingelesene Baumstruktur soll am [FONT=Monaco]Bildschirm ausgegeben werden, danach soll ein neuer Leistungsnachweis eingefügt werden, sowie die Kontodaten des Studenten geändert werden. Danach soll die geänderte Baumstruktur in einer xml-Datei gespeichert werden.
Folgenden Java-Code habe ich geschrieben:
Ich bekomme folgende Fehlermeldung:
java.lang.NullPointerException
at MyDOMParser.addLeistungsnachweis(MyDOMParser.java:81)
at MyDOMParser.main(MyDOMParser.java:124)
Wo liegt mein Fehler? Habe schon viel rumprobiert und komme da nicht weiter.
Vielen Dank im Voraus.
Grüße
Lena
ich hoffe sehr, dass sie mir helfen können.
Ich muss einen DOM Parser implementieren, der folgendes xml-Dokument einliest:
[xml]
<?xmlversion="1.0"encoding="UTF-8"?>
<Studentendaten>
<Student>
<Name>
<Anrede>Herr</Anrede>
<Vorname>Max</Vorname>
<Nachname>Mustermann</Nachname>
</Name>
<Matrikelnummer>12345678</Matrikelnummer>
<Anschrift>
<Strasse>Waldstrasse</Strasse>
<Hausnummer>125</Hausnummer>
<Ort>Berlin</Ort>
<Plz>12345</Plz>
</Anschrift>
<LieferAnschrift>
<Strasse>Waldstrasse</Strasse>
<Hausnummer>100</Hausnummer>
<Ort>Berlin</Ort>
<Plz>12345</Plz>
</LieferAnschrift>
<Kontodaten>
<Kontonummer>123 456 789 00</Kontonummer>
<Blz>200 150 00</Blz>
<Kontoinhaber>Mustermann</Kontoinhaber>
</Kontodaten>
<Leistungsnachweis>
<Kurs>20400</Kurs>
<Note>1.0</Note>
<GesamtPunkte>100</GesamtPunkte>
<Datum>10.03.2015</Datum>
<AnzVersuche>1</AnzVersuche>
</Leistungsnachweis>
<SchriftlicheArbeitArt="Bachelorarbeit">
<Thema>Informationssysteme</Thema>
<Note>1,0</Note>
<Betreuer>Prof. Muster</Betreuer>
<Abgabedatum>20.04.2015</Abgabedatum>
</SchriftlicheArbeit>
<Anmerkung>Sonstiges...</Anmerkung>
</Student>
</Studentendaten>
[/xml]
Die Eingelesene Baumstruktur soll am [FONT=Monaco]Bildschirm ausgegeben werden, danach soll ein neuer Leistungsnachweis eingefügt werden, sowie die Kontodaten des Studenten geändert werden. Danach soll die geänderte Baumstruktur in einer xml-Datei gespeichert werden.
Folgenden Java-Code habe ich geschrieben:
Java Code:
-
import java.io.File;
-
-
import javax.xml.parsers.DocumentBuilder;
-
import javax.xml.parsers.DocumentBuilderFactory;
-
import javax.xml.transform.Transformer;
-
import javax.xml.transform.TransformerFactory;
-
import javax.xml.transform.dom.DOMSource;
-
import javax.xml.transform.stream.StreamResult;
-
-
-
import org.w3c.dom.Document;
-
import org.w3c.dom.Element;
-
import org.w3c.dom.NamedNodeMap;
-
import org.w3c.dom.Node;
-
import org.w3c.dom.NodeList;
-
-
-
public class MyDOMParser {
-
-
-
private static void printNodes(NodeList nodelist) {
-
-
-
Node tmpNode, node;
-
NamedNodeMap nodeMap;
-
-
-
for (int i = 0; i < nodelist.getLength(); i++) {
-
tmpNode = nodelist.item(i);
-
if (tmpNode.getNodeType() == Node.ELEMENT_NODE) {
-
if (tmpNode.getChildNodes().getLength() == 1)
-
-
-
+ tmpNode.getTextContent());
-
else
-
if (tmpNode.hasAttributes()) {
-
nodeMap = tmpNode.getAttributes();
-
for (int j = 0; j < nodeMap.getLength(); j++) {
-
node = nodeMap.item(j);
-
+ node.getNodeValue());
-
}
-
}
-
}
-
-
if (tmpNode.hasChildNodes())
-
printNodes(tmpNode.getChildNodes());
-
}
-
-
}
-
-
-
-
-
-
-
-
Note.appendChild(doc.createTextNode(Erg));
-
GesamtPunkte.appendChild(doc.createTextNode(GesPunkte));
-
Datum.appendChild(doc.createTextNode(Dat));
-
AnzVersuche.appendChild(doc.createTextNode(Ver));
-
-
-
Kurs.appendChild(Note);
-
Kurs.appendChild(GesamtPunkte);
-
Kurs.appendChild(Datum);
-
Kurs.appendChild(AnzVersuche);
-
-
-
Node Leistungsnachweis =
-
doc.getElementsByTagName("Leistungsnachweise").item(0);
-
Leistungsnachweis.appendChild(Kurs);
-
}
-
-
-
Node Kontodaten = doc.getElementsByTagName("Kontodaten").item(0);
-
NamedNodeMap attr = Kontodaten.getAttributes();
-
Node nodeAttr = attr.getNamedItem("Inhaber");
-
nodeAttr.setNodeValue(Inhaber);
-
Node KontoNr = doc.getElementsByTagName("KntNr").item(0);
-
KontoNr.setNodeValue(KntNr);
-
Node blz = doc.getElementsByTagName("BLZ").item(0);
-
blz.setNodeValue(BLZ);
-
}
-
-
-
try {
-
"/EA 3.4/src/NewFile.xml");
-
// Ziel für neuen XML-File
-
-
-
"/EA 3.4/src/NewFile_new.xml");
-
DocumentBuilderFactory dbfactory = DocumentBuilderFactory
-
.newInstance();
-
DocumentBuilder dBuilder = dbfactory.newDocumentBuilder();
-
doc.getDocumentElement().normalize();
-
+ doc.getDocumentElement().getNodeName());
-
-
-
if (doc.hasChildNodes())
-
printNodes(doc.getChildNodes());
-
-
-
// neuen Leistungsnachweis einfügen
-
-
-
addLeistungsnachweis(doc, "01770", "1.7", "88", "23.09.2014", "1");
-
-
-
// Kontodaten ändern
-
-
-
changeKontodaten(doc, "Hans Muster", "9876543", "250 100 20");
-
printNodes(doc.getChildNodes());
-
-
-
// Datei als XML-file speichern
-
-
-
TransformerFactory transformerFactory = TransformerFactory
-
.newInstance();
-
Transformer transformer = transformerFactory.newTransformer();
-
DOMSource source = new DOMSource(doc);
-
StreamResult result = new StreamResult(xmlFileTarget);
-
transformer.transform(source, result);
-
e.printStackTrace();
-
}
-
}
-
-
-
-
}
Ich bekomme folgende Fehlermeldung:
java.lang.NullPointerException
at MyDOMParser.addLeistungsnachweis(MyDOMParser.java:81)
at MyDOMParser.main(MyDOMParser.java:124)
Wo liegt mein Fehler? Habe schon viel rumprobiert und komme da nicht weiter.
Vielen Dank im Voraus.
Grüße
Lena
DOM Parser Implementieren
Categories: DOM Parser Implementieren
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire