Page 1 of 1

Παραγωγή .xml αρχείου με JAVA

Posted: Wed Oct 29, 2008 3:20 pm
by PASCAL
Θέλω να δημιουργήσω ένα αρχείο .xml μέσα από java αλλά δεν ξέρω αν υπάρχουν ειδικές τάξεις γι' αυτή τη δουλειά (και αν είναι καλύτερη τακτική) ή απλά χρησιμοποιούμε "writers" και "println" και σαν κατάλληξη αρχείου απλά βάζουμε .xml;

Ξέρετε κάτι παραπάνω; Κάποιο παράδειγμα;
Ευχαριστώ :smt006

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Wed Oct 29, 2008 3:27 pm
by rose
PASCAL wrote:Θέλω να δημιουργήσω ένα αρχείο .xml μέσα από java αλλά δεν ξέρω αν υπάρχουν ειδικές τάξεις γι' αυτή τη δουλειά (και αν είναι καλύτερη τακτική) ή απλά χρησιμοποιούμε "writers" και "println" και σαν κατάλληξη αρχείου απλά βάζουμε .xml;

Ξέρετε κάτι παραπάνω; Κάποιο παράδειγμα;
Ευχαριστώ :smt006


DOM4J

Code: Select all

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class Foo {

    public Document createDocument() {
        Document document = DocumentHelper.createDocument();
        Element root = document.addElement( "root" );

        Element author1 = root.addElement( "author" )
            .addAttribute( "name", "James" )
            .addAttribute( "location", "UK" )
            .addText( "James Strachan" );
       
        Element author2 = root.addElement( "author" )
            .addAttribute( "name", "Bob" )
            .addAttribute( "location", "US" )
            .addText( "Bob McWhirter" );

        return document;
    }
}

http://www.dom4j.org/

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Wed Oct 29, 2008 3:52 pm
by PASCAL
Ευχαριστώ rose. To πακέτο dom4j το κατεβάζουμε και το εγκαθιστούμε έτσι;

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Wed Oct 29, 2008 4:21 pm
by rose
PASCAL wrote:To πακέτο dom4j το κατεβάζουμε και το εγκαθιστούμε έτσι;


Κανονικά όπως κάθε jar, το προσθέτεις στο build path.

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Wed Oct 29, 2008 10:12 pm
by tsilochr
για το πλουραλισμό των προτάσεων, απλά να προσθέσω το jaxb

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Thu Oct 30, 2008 1:27 am
by The Punisher
Υπάρχει κάποιο κρυφό contest μεταξύ σας ? :lol:

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Thu Oct 30, 2008 11:34 am
by tsilochr
The Punisher wrote:Υπάρχει κάποιο κρυφό contest μεταξύ σας ? :lol:


όχι, το αντίθετο μάλιστα. πιο πολύ νιώθω ότι πρέπει να μεταδίδουμε αυτά που ξέρουμε στους νεότερους.

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Thu Oct 30, 2008 11:48 am
by The Punisher
φυσικά κι έκανα πλάκα .. :-p

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Thu Oct 30, 2008 12:04 pm
by rose
tsilochr wrote:
The Punisher wrote:Υπάρχει κάποιο κρυφό contest μεταξύ σας ? :lol:


όχι, το αντίθετο μάλιστα. πιο πολύ νιώθω ότι πρέπει να μεταδίδουμε αυτά που ξέρουμε στους νεότερους.


Κρύβε χρόνια, κρύβε χρόνια. :smt021

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Fri Oct 31, 2008 10:41 pm
by PASCAL
Ωραίο το πακετάκι, το δοκίμασα στο σπίτι και είναι πολύ βολικό. Λόγω όμως του ότι δεν επιτρέπεται η εγκατάστασή του στα labs της σχολής, πρέπει αναγκαστικά να χρησιμοποιήσω για μια εργασία τα υπάρχοντα πακέτα της Java για XML.
Για παράδειγμα πώς μπορώ να φτιάξω το εξής XML:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<Bookcase>
    <Shelf ShelfId="1">
       <Books BooksId="Physics" Year="2008"/>
       <Books BooksId="Physics" Year="2007"/>
    </Shelf">
    <Shelf ShelfId="2">
       <Books BooksId="Maths" Year="2008"/>
       <Books BooksId="Maths" Year="2007"/>
    </Shelf">
</Bookcase>


με τα υπάρχοντα πακέτα της java και να αποθηκεύεται ως Bookcase.xml ?
Πρέπει να χρησιμοποιήσω κάποιο ειδικό "stream" ?
Καμιά ιδέα ?

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Sat Nov 01, 2008 11:58 am
by tsilochr
Pascal, το dom4j είναι ένα απλό jar file, άρα δεν χρειάζεται να εγκατασταθεί κάπου στο σύστημα, αρκεί όταν μεταγλωττίζεις/φορτώνεις το δικό σου πρόγραμμα να το βάζεις στην classpath.

Κατα τα άλλα, αν θες να γράψεις το stream με το χέρι, χρειάζεσαι απλά ένα stream που να γράφει κείμενο, πχ το BufferedWriter, να κάνεις output τα πάντα και να το σώσεις με κατάληξη .xml

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Tue Nov 11, 2008 12:32 am
by Serendipity
εχω το εξης προβλημα προσπαθω να κανω parsing ενα αρχειο

Code: Select all

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
FileInputStream fn=new FileInputStream("c:\\courses.xml");
InputStreamReader ir=new InputStreamReader(fn,"UTF-8");
InputSource ko=new InputSource(ir);
Document doc=documentBuilder.parse(ko);


και μου πεταει το παρακατω exception sthn τελευταια γραμμη
[Fatal Error] :1:1: Content is not allowed in prolog.
org.xml.sax.SAXParseException: Content is not allowed in prolog.


το xml αρχειο μου ειναι στην απαραιτητη μορφη με αυτο στην αρχη <?xml version="1.0" encoding="UTF-8"?> χωρις κενα οπως πρεπει να ειναι εχει κανεις καμια ιδεα????

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Tue Nov 11, 2008 3:06 pm
by rose
Λες να έχει πρόβλημα το xml? Δες και το format του editor να ειναι UTF-8.

Re: Παραγωγή .xml αρχείου με JAVA

Posted: Tue Nov 11, 2008 8:49 pm
by Serendipity
βρηκα ποιο ειναι το προβλημα γενικοτερα αμα πατε να ανοιξετε xml αρχειο με notepad και να το επεξεργαστειτε αυτο θα balei κατι αορατες τελιτσες μπροστα ... η κατι χαρακτηρες δικους του που μπορειτε να δειτε μονο αν κανετε debug το xml απο το command line το γεγονος ειναι να μην περασετε xml file οπως εγω!