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

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
PASCAL
Wow! Terabyte level
Wow! Terabyte level
Posts: 3587
Joined: Wed Nov 23, 2005 10:58 pm
Academic status: Alumnus/a
Gender:

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

Post by PASCAL » Wed Oct 29, 2008 3:20 pm

Θέλω να δημιουργήσω ένα αρχείο .xml μέσα από java αλλά δεν ξέρω αν υπάρχουν ειδικές τάξεις γι' αυτή τη δουλειά (και αν είναι καλύτερη τακτική) ή απλά χρησιμοποιούμε "writers" και "println" και σαν κατάλληξη αρχείου απλά βάζουμε .xml;

Ξέρετε κάτι παραπάνω; Κάποιο παράδειγμα;
Ευχαριστώ :smt006
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

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

Post by rose » Wed Oct 29, 2008 3:27 pm

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/
που θα πάει θα το δουμε...
User avatar
PASCAL
Wow! Terabyte level
Wow! Terabyte level
Posts: 3587
Joined: Wed Nov 23, 2005 10:58 pm
Academic status: Alumnus/a
Gender:

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

Post by PASCAL » Wed Oct 29, 2008 3:52 pm

Ευχαριστώ rose. To πακέτο dom4j το κατεβάζουμε και το εγκαθιστούμε έτσι;
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

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

Post by rose » Wed Oct 29, 2008 4:21 pm

PASCAL wrote:To πακέτο dom4j το κατεβάζουμε και το εγκαθιστούμε έτσι;


Κανονικά όπως κάθε jar, το προσθέτεις στο build path.
που θα πάει θα το δουμε...
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

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

Post by tsilochr » Wed Oct 29, 2008 10:12 pm

για το πλουραλισμό των προτάσεων, απλά να προσθέσω το jaxb
The Punisher
Venus Former Team Member
Posts: 7561
Joined: Thu Oct 27, 2005 1:43 pm
Academic status: Alumnus/a
Gender:
Location: Boston, MA

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

Post by The Punisher » Thu Oct 30, 2008 1:27 am

Υπάρχει κάποιο κρυφό contest μεταξύ σας ? :lol:
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

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

Post by tsilochr » Thu Oct 30, 2008 11:34 am

The Punisher wrote:Υπάρχει κάποιο κρυφό contest μεταξύ σας ? :lol:


όχι, το αντίθετο μάλιστα. πιο πολύ νιώθω ότι πρέπει να μεταδίδουμε αυτά που ξέρουμε στους νεότερους.
The Punisher
Venus Former Team Member
Posts: 7561
Joined: Thu Oct 27, 2005 1:43 pm
Academic status: Alumnus/a
Gender:
Location: Boston, MA

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

Post by The Punisher » Thu Oct 30, 2008 11:48 am

φυσικά κι έκανα πλάκα .. :-p
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

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

Post by rose » Thu Oct 30, 2008 12:04 pm

tsilochr wrote:
The Punisher wrote:Υπάρχει κάποιο κρυφό contest μεταξύ σας ? :lol:


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


Κρύβε χρόνια, κρύβε χρόνια. :smt021
που θα πάει θα το δουμε...
User avatar
PASCAL
Wow! Terabyte level
Wow! Terabyte level
Posts: 3587
Joined: Wed Nov 23, 2005 10:58 pm
Academic status: Alumnus/a
Gender:

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

Post by PASCAL » Fri Oct 31, 2008 10:41 pm

Ωραίο το πακετάκι, το δοκίμασα στο σπίτι και είναι πολύ βολικό. Λόγω όμως του ότι δεν επιτρέπεται η εγκατάστασή του στα 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" ?
Καμιά ιδέα ?
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

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

Post by tsilochr » Sat Nov 01, 2008 11:58 am

Pascal, το dom4j είναι ένα απλό jar file, άρα δεν χρειάζεται να εγκατασταθεί κάπου στο σύστημα, αρκεί όταν μεταγλωττίζεις/φορτώνεις το δικό σου πρόγραμμα να το βάζεις στην classpath.

Κατα τα άλλα, αν θες να γράψεις το stream με το χέρι, χρειάζεσαι απλά ένα stream που να γράφει κείμενο, πχ το BufferedWriter, να κάνεις output τα πάντα και να το σώσεις με κατάληξη .xml
User avatar
Serendipity
Gbyte level
Gbyte level
Posts: 1977
Joined: Tue Sep 19, 2006 11:16 pm
Academic status: Alumnus/a
Gender:
Location: Sweden
Contact:

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

Post by Serendipity » Tue Nov 11, 2008 12:32 am

εχω το εξης προβλημα προσπαθω να κανω 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"?> χωρις κενα οπως πρεπει να ειναι εχει κανεις καμια ιδεα????
-Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.
--Albert Einstein--


ImageImage

My new blog Serendipity's thoughts!
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

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

Post by rose » Tue Nov 11, 2008 3:06 pm

Λες να έχει πρόβλημα το xml? Δες και το format του editor να ειναι UTF-8.
που θα πάει θα το δουμε...
User avatar
Serendipity
Gbyte level
Gbyte level
Posts: 1977
Joined: Tue Sep 19, 2006 11:16 pm
Academic status: Alumnus/a
Gender:
Location: Sweden
Contact:

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

Post by Serendipity » Tue Nov 11, 2008 8:49 pm

βρηκα ποιο ειναι το προβλημα γενικοτερα αμα πατε να ανοιξετε xml αρχειο με notepad και να το επεξεργαστειτε αυτο θα balei κατι αορατες τελιτσες μπροστα ... η κατι χαρακτηρες δικους του που μπορειτε να δειτε μονο αν κανετε debug το xml απο το command line το γεγονος ειναι να μην περασετε xml file οπως εγω!
-Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.
--Albert Einstein--


ImageImage

My new blog Serendipity's thoughts!
Post Reply

Return to “Προγραμματισμός”