ciao!
ho un problema con un file xml.
questo una parte del file:
codice:
<clienti>
<cliente>
<codice>CODICE</codice>
<ragione_sociale>RAGSOC</ragione_sociale>
<mnemonico>MNEM</mnemonico>
<indirizzo>INDIRIZZO</indirizzo>
<telefono> </telefono>
<email> </email>
<listino_c>LIST</listino_c>
<sconto_c>00.00</sconto_c>
</cliente>
........
</clienti>
quindi è completo dei tag.
poi lo leggo:
codice:
public static ArrayList<ArrayList<String>> read(String file) throws ParserConfigurationException, SAXException, IOException {
ArrayList<ArrayList<String>> tabella = new ArrayList<>();
if (new File(file).exists()) {
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(file);
document.getDocumentElement().normalize();
NodeList nodeList = document.getElementsByTagName("cliente");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
ArrayList<String> list = new ArrayList<>();
Element element = (Element) node;
list.add(element.getElementsByTagName("codice").item(0).getTextContent());
list.add(element.getElementsByTagName("ragione_sociale").item(0).getTextContent());
list.add(element.getElementsByTagName("mnemonico").item(0).getTextContent());
list.add(element.getElementsByTagName("listino_c").item(0).getTextContent()); // ERRORE
tabella.add(list);
}
}
}
return tabella;
}
ottengo l'errore sulla riga dove ho messo il commento:
codice:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at it.cimoda.ReadXml.read(ReadXml.java:40)
at it.cimoda.FrameMain.riempiTable(FrameMain.java:100)
at it.cimoda.FrameMain.<init>(FrameMain.java:30)
at it.cimoda.Cimoda$1.run(Cimoda.java:29)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
può essere che sia stanco, ma l'errore non lo vedo!!!