Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe das gute Stück als main methode implementiert, nun habe ich in einem anderen Package die main methode, und muss das irgendwie umschreiben, weiß aber nicht wie.
Brauche unbedingt Hilfe...
Java:
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class xmlReader {
public static String vin = "";
public static int date = 0;
[B] public static void main(String[] args) throws ParserConfigurationException,
SAXException, IOException {[/B]
// Parse XML file
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = factory.newDocumentBuilder();
Document doc = documentBuilder.parse(new File("resultdata.xml"));
String titleEl = doc.getDocumentElement().getNodeName();
System.out.println("Title = " + titleEl);
NodeList nodeList = doc.getElementsByTagName("HEAD");
// String vin = "";
//int date = 0;
System.out.println("\n-- Alle Daten --");
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element) nodeList.item(i);
vin = element.getElementsByTagName("VIN").item(0).getChildNodes()
.item(0).getNodeValue();
date = Integer.parseInt(element.getElementsByTagName("DATE")
System.out.println(vin);
Connection connection = null;
connection = sqliteConnection.dbConnector();
try {
String query = "INSERT OR REPLACE INTO Tracking (beschreibung) values(?)";
PreparedStatement pst = connection.prepareStatement(query);
pst.setString(1, vin);
pst.execute();
JOptionPane.showMessageDialog(null, "Data Saved");
pst.close();
} catch (Exception x) {
x.printStackTrace();
}
}
}
Wo genau liegt das Problem?
Benenne doch einfach die "main"-Methode in der Klasse xmlReader (Klassen werden überingens UpperCamelCase geschrieben) um auf "loadDataToDatabase" oder etwas ähnliches.
Und fertig
EDIT: Da war Joose wohl schneller..
Nunja, so wie ich dich verstehe, müsstest du dem ganzen nur einen anderen Namen geben (also letzten Endes, wie Joose es beschrieben hat), um die Methode statisch zu nutzen. Ansonsten müsstest du einfach Initialisierungen von tatsächlichen Funktionen trennen, um das ganze objektorientiert anzugehen (Initialisierungen in den Konstruktor, Funktionen als eigene Methoden).
Ich hoffe, ich konnte dir einen Denkanstoß geben und wir reden hier nicht aneinander vorbei
bestimmt nicht, vielen Dank, dachte, es geht irgendwie anders...
Nun möchte ich in einem anderen Package mit Hilfe von JFileChooser eine *.xml File öffnen und sein Name in diese Methode: loadDataToDatabase übergeben, damit genau dieses xml Dokument untersucht wird und ich in die Datenbank benötigte Einträge weiterleiten kann.
Nun möchte ich in einem anderen Package mit Hilfe von JFileChooser eine *.xml File öffnen und sein Name in diese Methode: loadDataToDatabase übergeben, damit genau dieses xml Dokument untersucht wird und ich in die Datenbank benötigte Einträge weiterleiten kann.
Was ich nicht verstehe: xmlFileNameImport wird schon richtig weiter geschickt, aber meine xml Datei nur bis HEAD abgearbeitet wird.. main -> loadDataToDatabase rest oben
Wie kann ich die Debugger Funktionen nutzen, wenn meine XML-Datei halbwegs bearbeitet wird?
Welche log Ausgaben sind gemeint?
Im XML wird nur diese Zeile ordnungsgemäß ausgegeben: NodeList nodeList = doc.getElementsByTagName("HEAD");
und diese nicht mehr: Element element = (Element) nodeList.item(i);
vin = element.getElementsByTagName("VIN").item(0).getChildNodes()
.item(0).getNodeValue();
Variable: vin
habe ich versucht als globale und auch als locale zu deklarieren, allerdings ohne Erfolg
Wenn du eine (gewöhnliche) IDE benutzt sollte diese eigentlich auch einen Debugger zur Verfügung stellen.
Wie du diesen benutzen kannst verrät dir die Doku bzw. gibt es sicher auch Anleitungen dazu im Internet.
Mit Logausgaben meine ich entweder wirkliche Logausgaben die mit einem Logging Framework ala log4j in eine Logdatei geschrieben werden
oder eben Konsolenausgaben um nachzuverfolgen was denn der Code gerade macht usw.
Im XML wird nur diese Zeile ordnungsgemäß ausgegeben: NodeList nodeList = doc.getElementsByTagName("HEAD");
und diese nicht mehr: Element element = (Element) nodeList.item(i);
vin = element.getElementsByTagName("VIN").item(0).getChildNodes()
.item(0).getNodeValue();
ich benutze:
Eclipse IDE for Java Developers
Version: Luna Release (4.4.0)
bevor ich meine main methode in loadDataToDatabase unbenannt habe, könnte ich nur xmlReader starten und könnte ich damit ganz normal xml parsen und in die DB abspeichern.