Ciao a tutti,
mancano pochi passi e poi ho finito la mia applicazione, anche grazie al vostro aiuto...aiuto che chiedo ancora una volta...
Allora nella mia applicazione ho una funzione di Import che attraverso un jFileChooser prende in input un file xml e chiama il parser per leggerlo...
Il parser è una parser SAX implementato così:
codice:
public class Parser
extends DefaultHandler {
private static int INDENT = 2;
public void parse(File file) {
try {
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setValidating(false);
parserFactory.setNamespaceAware(false);
SAXParser parser = parserFactory.newSAXParser();
parser.parse(file, this);
}
catch (IOException exception) {
JOptionPane.showMessageDialog(null, exception.getMessage(),
"I/O Exception",
JOptionPane.ERROR_MESSAGE);
}
catch (SAXException exception) {
JOptionPane.showMessageDialog(null, exception.getMessage(),
"SAX Exception",
JOptionPane.ERROR_MESSAGE);
}
catch (ParserConfigurationException exception) {
JOptionPane.showMessageDialog(null, exception.getMessage(),
"Parser Configuration Exception",
JOptionPane.ERROR_MESSAGE);
}
catch (FactoryConfigurationError exception) {
JOptionPane.showMessageDialog(null, "None Row Selected",
"Factory Configuration Error",
JOptionPane.ERROR_MESSAGE);
}
}
private int idx = 0;
public void characters(char[] ch, int start, int length) {
String s = new String(ch, start, length);
if (!s.startsWith("\n"))
System.out.println(getIndent() + " Value: " + s);
}
public void endDocument() {
idx -= INDENT;
System.out.println(getIndent() + "end document");
System.out.println("...PARSING ends");
}
public void endElement(String url, String localName, String qName) {
System.out.println(getIndent() + "end element");
idx -= INDENT;
}
public void startDocument() {
idx += INDENT;
System.out.println("PARSING begins...");
System.out.println(getIndent() + "start document: ");
}
public void startElement(String uri, String localName, String qName,
Attributes attributes) {
idx += INDENT;
System.out.println('\n' + getIndent() + "start element: " + qName);
}
private String getIndent() {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < idx; i++)
sb.append(" ");
return sb.toString();
}
}
Ora tutto questo funziona, ma io vorrei riuscire a salvare i dai contenuti nel file xml nel mio database.
Per esempio:
Quando il parser trova il tag <title> il valore di title deve essere letto e salvato nelle colonna title del mio database.
N.B le funzioni di inserimento in database le ho già implementate, devo solo capire come funziona questo benedetto parser...i dati me li salva in una struttura o no?
Grazie per l'aiuto.