Hi, ich finde leider in Beispielen immer nur XML Dateien die 1 Root und 2 Childs haben, aber leider kein drittes. Leider kenne ich mich mit XML und Java nicht so gut aus.
Anbei habe ich ein Beispiel einer XML Datei die ich einlesen möchte und meinen Quellcode, nur irgendwie bekomme ich nur von "Punkt 1" den X-Wert ausgegeben, danach kommt eine "NullPointerException" und die Schleife bricht ab :/
wäre sehr nett wenn mir da jemand helfen könnte
[XML]<?xml version="1.0" encoding="utf-8"?>
<matrix version="2.0">
<row number="1">
<point number="1">
<x>414.9969</x>
<y>-708.5396</y>
<z>-89.1267</z>
</point>
<point number="2">
<x>445.4468</x>
<y>-261.0712</y>
<z>-36.6527</z>
</point>
<point number="3">
<x>441.3276</x>
<y>-138.7316</y>
<z>-18.4372</z>
</point>
</row>
<row number="2">
<point number="2">
<x>424.9969</x>
<y>-708.5396</y>
<z>-89.1267</z>
</point>
<point number="2">
<x>455.4468</x>
<y>-261.0712</y>
<z>-36.6527</z>
</point>
<point number="3">
<x>451.3276</x>
<y>-138.7316</y>
<z>-18.4372</z>
</point>
</row>
<row number="3">
<point number="1">
<x>434.9969</x>
<y>-708.5396</y>
<z>-89.1267</z>
</point>
<point number="2">
<x>465.4468</x>
<y>-261.0712</y>
<z>-36.6527</z>
</point>
<point number="3">
<x>461.3276</x>
<y>-138.7316</y>
<z>-18.4372</z>
</point>
</row>
</matrix>[/XML]
Anbei habe ich ein Beispiel einer XML Datei die ich einlesen möchte und meinen Quellcode, nur irgendwie bekomme ich nur von "Punkt 1" den X-Wert ausgegeben, danach kommt eine "NullPointerException" und die Schleife bricht ab :/
wäre sehr nett wenn mir da jemand helfen könnte
[XML]<?xml version="1.0" encoding="utf-8"?>
<matrix version="2.0">
<row number="1">
<point number="1">
<x>414.9969</x>
<y>-708.5396</y>
<z>-89.1267</z>
</point>
<point number="2">
<x>445.4468</x>
<y>-261.0712</y>
<z>-36.6527</z>
</point>
<point number="3">
<x>441.3276</x>
<y>-138.7316</y>
<z>-18.4372</z>
</point>
</row>
<row number="2">
<point number="2">
<x>424.9969</x>
<y>-708.5396</y>
<z>-89.1267</z>
</point>
<point number="2">
<x>455.4468</x>
<y>-261.0712</y>
<z>-36.6527</z>
</point>
<point number="3">
<x>451.3276</x>
<y>-138.7316</y>
<z>-18.4372</z>
</point>
</row>
<row number="3">
<point number="1">
<x>434.9969</x>
<y>-708.5396</y>
<z>-89.1267</z>
</point>
<point number="2">
<x>465.4468</x>
<y>-261.0712</y>
<z>-36.6527</z>
</point>
<point number="3">
<x>461.3276</x>
<y>-138.7316</y>
<z>-18.4372</z>
</point>
</row>
</matrix>[/XML]
Java:
import java.io.File;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
public class test {
public static void main(String argv[]) {
try {
File xmlDatei = new File("C:/Users/admin-32/Desktop/Matrix.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlDatei);
doc.createDocumentFragment().normalize();
NodeList MatrixList = doc.getChildNodes();
Node Matrix = MatrixList.item(0);
NodeList Rows = Matrix.getChildNodes();
for (int i=1; i<Rows.getLength();i++) {
Node Row = Rows.item(i);
NodeList Punkte = Row.getChildNodes();
for (int j=1; j<Punkte.getLength();j++) {
Node Punkt = Punkte.item(j);
NodeList Koordinaten = Punkt.getChildNodes();
for (int k=1; k<Koordinaten.getLength();k++) {
Node Koordinate = Koordinaten.item(k);
System.out.println(Koordinate.getFirstChild().getNodeValue());
}
}
}
System.out.println("-----------------------");
} catch (Exception e) { e.printStackTrace();}
}
}