Αποθήκευση αλλαγών xml αρχείου
Posted: Sun Oct 26, 2008 10:59 am
Έχω ένα αρχείο xml του οποίου τα πεδία επεξεργάζομαι μέσα από μια φόρμα. Αυτό που θέλω είναι:
1. Όταν αλλάξω μια τιμή ενός πεδίου του xml αρχείου (μέσα από την φόρμα), αυτή να αποθηκευτεί στην δομή (αντικείμενο της Java) που αντιστοιχεί στο xml αρχείο που επεξεργάζομαι.
Document doc = db.parse(xmlfile);
Διάβασα ότι:
Java XML support classes don't do save in common meaning of word. Java Classes support methods to transform Document from one state to other state. One state can be Document instance in memory, the second state after transformation XML file.
Αυτό σημαίνει ότι θα πρέπει να αποθηκεύω κάπου αντικείμενα Document, δηλαδή τις διάφορες καταστάσεις του doc. Επίσης θα πρέπει να χρησιμοποιώ μεθόδους/ κλάσεις που να επιδρούν πάνω στο doc (π.χ. org.w3c.dom.Node). Διορθώστε με αν κάνω λάθος.
Παρατήρηση:
Η κλάση TransformerFactory απ' ότι κατάλαβα χρησιμοποιείται κυρίως για να μετατρέψεις ένα αρχείο xml σε μια άλλη μορφή (text/ xml/ html) και όχι για την αυτή καθ' αυτή επεξεργασία του DOM tree:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(fos);
// transform source into result will do save
try {
transformer.transform(source, result);
}
catch (TransformerException e) {
System.out.println("Error transform: " + e.getMessage());
}
1. Όταν αλλάξω μια τιμή ενός πεδίου του xml αρχείου (μέσα από την φόρμα), αυτή να αποθηκευτεί στην δομή (αντικείμενο της Java) που αντιστοιχεί στο xml αρχείο που επεξεργάζομαι.
Document doc = db.parse(xmlfile);
Διάβασα ότι:
Java XML support classes don't do save in common meaning of word. Java Classes support methods to transform Document from one state to other state. One state can be Document instance in memory, the second state after transformation XML file.
Αυτό σημαίνει ότι θα πρέπει να αποθηκεύω κάπου αντικείμενα Document, δηλαδή τις διάφορες καταστάσεις του doc. Επίσης θα πρέπει να χρησιμοποιώ μεθόδους/ κλάσεις που να επιδρούν πάνω στο doc (π.χ. org.w3c.dom.Node). Διορθώστε με αν κάνω λάθος.
Παρατήρηση:
Η κλάση TransformerFactory απ' ότι κατάλαβα χρησιμοποιείται κυρίως για να μετατρέψεις ένα αρχείο xml σε μια άλλη μορφή (text/ xml/ html) και όχι για την αυτή καθ' αυτή επεξεργασία του DOM tree:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(fos);
// transform source into result will do save
try {
transformer.transform(source, result);
}
catch (TransformerException e) {
System.out.println("Error transform: " + e.getMessage());
}