em_i Δημοσ. 2 Ιανουαρίου 2008 Δημοσ. 2 Ιανουαρίου 2008 Γεια σας! Φτιαχνω ένα application σε java και τώρα προσπαθώ να να φτιάξω μια πολύ απλή μέθοδοη οποία θα δημιουργήσει ένα xml έγγραφο με χρήση της DOM. Για να αποθηκευτεί λοιπόν το Document της DOM σε αρχείο θέλω να το μετατρέψω σε XMLDocument. Για να χρεισιμοποιήσω το crimson (ένα κολπάκι που βρήκα σερφάρωντας στο internet) πρέπει να κάνω import to paketo org.apache.crimson.tree.XmlDocument. Το πρόβλημά μου είναι πως το IDE (Netbeans) λέει ότι το πακέτο org δεν υπάρχει. Μήπως μπορείκάποος javakias να μοθ πει τι κάνω? Θα πρέπει να βρώ στο internet το πακέτο και να το κατεβάσω? Όμως τότε το application μου θα μπορεί να εκτελεστεί από άλλο υπολογιστή? Θα είμουν υποχρεη αν με βοηθούσατε
gtroza Δημοσ. 2 Ιανουαρίου 2008 Δημοσ. 2 Ιανουαρίου 2008 em_i καλή χρονιά θα σ'απαντήσουν σίγουρα τα παιδιά της java γράψε ελληνικά γιατί τα greeklish δεν επιτρέπονται απο 1-1-2008 και θα σβυστεί αυτό που έγραψες (μάλλον) .
em_i Δημοσ. 2 Ιανουαρίου 2008 Μέλος Δημοσ. 2 Ιανουαρίου 2008 Ευχαριστώ για το ενδιαφέρων gtroza Καλή χρονιά σε όλους παιδιά! Στο μεταξύ σέρφαρα στο internet και βρήκα αυτό που ζητώ και μου λύνει το πρόβλημα, στη γλώσσα C# υλοποιήτε με τις 3 πιοκάτω εντολές XmlTextWriter writer = new XmlTextWriter("C:\\"+"FileName", null); writer.Formatting = Formatting.Indented; Χmldoc.Save(writer); Αλλα δεν βρήσκω την αντίστοιχη εντολή σε java...
vagpap Δημοσ. 2 Ιανουαρίου 2008 Δημοσ. 2 Ιανουαρίου 2008 Πήγαινε και κατέβασε απλά το jar με τις βιβλιοθήκες που χρειάζονται από εδώ (πακέτο Cocoon). Μετά απλά από το NetBeans κάνε include το jar αυτό στις βιβλιοθήκες που χρησιμοποεί το project σου. Από εκεί και πέρα, για να εκτελεστεί η εφαρμογή σου σαν ανεξάρτητη εφαρμογή, θα πρέπει στο classpath να συμπεριλάβεις και το jar που κατέβασες και χρησιμοποιείς. Ρίξε όμως και μια ματιά εδώ. Μπορεί το Cocoon να είναι too much για αυτό που θες να κάνεις. Τo πακέτo που χρειάζεται είναι το Xalan Καλή επιτυχία.
em_i Δημοσ. 2 Ιανουαρίου 2008 Μέλος Δημοσ. 2 Ιανουαρίου 2008 Eyxaristo vagpap! Το αρχείο που χρειάζομε είναι πράγματι το Xalan και το link με το παράδειγμα είναι πολύ βοηθητικό. Οπότε δεν θα χρησιμοποιήσω το πακέτο Cocoon το οποίο θα μου επιβαρύνει την εφαρμογή. Αυτό όμως που δεν καταλαμβαίνω είναι αν στο παράδειγμα που υπάρχει στο link δεν ήθελα να δημιουργήσω string για τύπωμα αλλά να κάνω save το xml στο δίσκο, πώς θα το έκανα? Ψαχνω την εντολή παντού και δεν βρίσκω τύποτα. Και πάλι ευχαριστώ για το ενδιαφέρων
vagpap Δημοσ. 2 Ιανουαρίου 2008 Δημοσ. 2 Ιανουαρίου 2008 Αν δοκιμάσεις το FileOutputStream, μπορείς να μετατρέψεις το XMLDocument που έχεις στη μνήμη σε αρχείο στο δίσκο σου (στο παράδειγμα, αντί να κάνεις System.out.println(xmlString) να γράψεις το xmlString στο FileOutputStream αντικείμενο που έχεις φτιάξει και να το σώσεις μετά).
em_i Δημοσ. 2 Ιανουαρίου 2008 Μέλος Δημοσ. 2 Ιανουαρίου 2008 Ναι εκει κατέληξα αφού το πήρα απόφαση πως δεν θα βρώ κάποια πιο άμεση εντολή. Σαν αρχάρια ενθουσιάζομαι συνέχεια βλέποντας όλα αυτά τα πακέτα με τις έτοιμες κλάσεις στην java!!! Ευχαριστω παιδιά.
alex2005 Δημοσ. 2 Ιανουαρίου 2008 Δημοσ. 2 Ιανουαρίου 2008 Πάντως μπορείς να το κάνεις αυτό χωρίς να κάνεις import εξωτερικές βιβλιοθήκες χρησιμοποιώντας τον DOM parser που έχει η Java. Ένα παράδειγμα είναι: >public static void main(String args[]) { String path = "./example.xml"; XMLFormatter formatter=new XMLFormatter(); try{ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); DOMImplementation di = db.getDOMImplementation(); Document doc = di.createDocument(null, "Example", null); DOMSource ds = new DOMSource(doc); StreamResult sr = new StreamResult(new File(path)); TransformerFactory tf = TransformerFactory.newInstance(); Transformer trans = tf.newTransformer(); Element root = doc.createElement("Element1"); root.setAttribute("attrib1","value1"); Element child = doc.createElement("Element2"); child.setAttribute("attrib2","value2"); root.appendChild(child); doc.getDocumentElement().appendChild(root); trans.transform(ds, sr); }catch(Exception e){} } Τα imports που χρειάζεσαι είναι: > import java.io.*; import java.util.logging.*; import org.w3c.dom.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; import javax.xml.transform.dom.*;
vagpap Δημοσ. 2 Ιανουαρίου 2008 Δημοσ. 2 Ιανουαρίου 2008 Βρίσκεται και αλλού το javax.xml.* εκτός από το Xalan package? Σε ποιό jar?
em_i Δημοσ. 3 Ιανουαρίου 2008 Μέλος Δημοσ. 3 Ιανουαρίου 2008 Hello! aleχ2005 μου άρεσε πολύ το παράδειγμα σου αλλά όταν το τρέχω, παρόλο που δεν πέρνω σηντακτικό λάθος, πέρνω συνέχεια το error: java.lang.NoClassDefFoundError: dom/Deftero (wrong name: dom/deftero) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) Exception in thread "main" Java Result: 1 Καμια ιδεα για τοπου οφείλεται?
vagpap Δημοσ. 3 Ιανουαρίου 2008 Δημοσ. 3 Ιανουαρίου 2008 Δεν έχει να κάνει με τον κώδικα αυτό καθέ αυτό. Κάπου δε βρίσκει σωστά την class σου. Το μύνημα ψάχνει για class dom.Deftero Απλά ψάξε για την ονοματολογία σου τόσο μέσα στην class όσο και στο όνομα του java αρχείου.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.