Προς το περιεχόμενο

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • 0
em_i

Create XML Document

Ερώτηση

Γεια σας!

Φτιαχνω ένα application σε java και τώρα προσπαθώ να να φτιάξω μια πολύ απλή μέθοδοη οποία θα δημιουργήσει ένα xml έγγραφο με χρήση της DOM. Για να αποθηκευτεί λοιπόν το Document της DOM σε αρχείο θέλω να το μετατρέψω σε XMLDocument. Για να χρεισιμοποιήσω το crimson (ένα κολπάκι που βρήκα σερφάρωντας στο internet) πρέπει να κάνω import to paketo org.apache.crimson.tree.XmlDocument.

Το πρόβλημά μου είναι πως το IDE (Netbeans) λέει ότι το πακέτο org δεν υπάρχει.

Μήπως μπορείκάποος javakias να μοθ πει τι κάνω? Θα πρέπει να βρώ στο internet το πακέτο και να το κατεβάσω? Όμως τότε το application μου θα μπορεί να εκτελεστεί από άλλο υπολογιστή?

Θα είμουν υποχρεη αν με βοηθούσατε :-)

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

10 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

Ευχαριστώ για το ενδιαφέρων gtroza :o

Καλή χρονιά σε όλους παιδιά!

 

Στο μεταξύ σέρφαρα στο internet και βρήκα αυτό που ζητώ και μου λύνει το πρόβλημα, στη γλώσσα C# υλοποιήτε με τις 3 πιοκάτω εντολές

XmlTextWriter writer = new XmlTextWriter("C:\\"+"FileName", null);

writer.Formatting = Formatting.Indented;

Χmldoc.Save(writer);

Αλλα δεν βρήσκω την αντίστοιχη εντολή σε java...

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Αν δοκιμάσεις το FileOutputStream, μπορείς να μετατρέψεις το XMLDocument που έχεις στη μνήμη σε αρχείο στο δίσκο σου (στο παράδειγμα, αντί να κάνεις System.out.println(xmlString) να γράψεις το xmlString στο FileOutputStream αντικείμενο που έχεις φτιάξει και να το σώσεις μετά).

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Πήγαινε και κατέβασε απλά το jar με τις βιβλιοθήκες που χρειάζονται από εδώ (πακέτο Cocoon). Μετά απλά από το NetBeans κάνε include το jar αυτό στις βιβλιοθήκες που χρησιμοποεί το project σου.

Από εκεί και πέρα, για να εκτελεστεί η εφαρμογή σου σαν ανεξάρτητη εφαρμογή, θα πρέπει στο classpath να συμπεριλάβεις και το jar που κατέβασες και χρησιμοποιείς.

 

Ρίξε όμως και μια ματιά εδώ. Μπορεί το Cocoon να είναι too much για αυτό που θες να κάνεις.

Τo πακέτo που χρειάζεται είναι το Xalan

 

Καλή επιτυχία.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Eyxaristo vagpap! Το αρχείο που χρειάζομε είναι πράγματι το Xalan και το link με το παράδειγμα είναι πολύ βοηθητικό. Οπότε δεν θα χρησιμοποιήσω το πακέτο Cocoon το οποίο θα μου επιβαρύνει την εφαρμογή. Αυτό όμως που δεν καταλαμβαίνω είναι αν στο παράδειγμα που υπάρχει στο link δεν ήθελα να δημιουργήσω string για τύπωμα αλλά να κάνω save το xml στο δίσκο, πώς θα το έκανα? Ψαχνω την εντολή παντού και δεν βρίσκω τύποτα. Και πάλι ευχαριστώ για το ενδιαφέρων :)

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Ναι εκει κατέληξα αφού το πήρα απόφαση πως δεν θα βρώ κάποια πιο άμεση εντολή. Σαν αρχάρια ενθουσιάζομαι συνέχεια βλέποντας όλα αυτά τα πακέτα με τις έτοιμες κλάσεις στην java!!! Ευχαριστω παιδιά.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Πάντως μπορείς να το κάνεις αυτό χωρίς να κάνεις 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.*;

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

em_i

 

καλή χρονιά

 

θα σ'απαντήσουν σίγουρα τα παιδιά της java

 

γράψε ελληνικά γιατί τα greeklish δεν επιτρέπονται απο 1-1-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

Καμια ιδεα για τοπου οφείλεται?

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δεν έχει να κάνει με τον κώδικα αυτό καθέ αυτό. Κάπου δε βρίσκει σωστά την class σου.

Το μύνημα ψάχνει για class dom.Deftero

 

Απλά ψάξε για την ονοματολογία σου τόσο μέσα στην class όσο και στο όνομα του java αρχείου.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
×
×
  • Δημιουργία νέου...