Posts Tagged ‘dom4j’

Java-XML in 3 minutes

20 May 2008

XML is a clear and concise way to describe data.

Let’s see an example:

<?xml version="1.0" encoding="UTF-8"?>
<message id="123">
    <from>Nikos</from>
    <to>Sofia</to>
    <text>Hello from XML!</text>
</message>

This simple document represents a “message”.

<message>
    ...
</message>

The message has an attribute called @id.

<message id="...">
    ...
</message>

It has also three children.

<from> ... </from>
<to> ... </to>
<text> ... </text>

Step 1. Download dom4j

To download dom4j go to dom4j.org → Download → Download the current release SourceForge → dom4j-1.6.1.jar

Note:

If you are using Java 1.5 download dom4j-1.5.2.jar, and
If you are using Java 1.4 download dom4j-1.4.zip; it has a dom4j-full.jar inside.

Step 2. Place the jar in the classpath

In Eclipse: Project → Java Build Path → Libraries → Add External JARs…

In Netbeans: File → ”Project” Properties → Libraries → Add JAR/Folder

In JDeveloper 11g: Tools → Project Properties… → Libraries and Classpath → Add JAR/Directory…

Step 3. Create the XML document

	// Create the document
	Document document = DocumentHelper.createDocument();
	// Add the root
	Element root = document.addElement("message").addAttribute("id", "123");
	// Add the "from" element
	root.addElement("from").addText("Nikos");
	// Add the "to" element
	root.addElement("to").addText("Sofia");
	// Add the "text" element
	root.addElement("text").addText("Hello from XML!");

That’s all!

Step 4. Save the XML document

// Make a pretty output
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("UTF-8");
		format.setTrimText(false);
// Save it
		XMLWriter writer = new XMLWriter(new FileWriter("C:/message.xml"), format);
		writer.write(document);
		writer.close();

Step 5. Read the XML document

// Locate the file
URL url = new File("C:/message.xml").toURI().toURL();
// Parse the document
Document document = new SAXReader().read(url);

Step 6. Get the information

// Get the root element
Element root = document.getRootElement();
// Get the id attribute
root.attributeValue("id");
// Get the from element
Element from = root.element("from");
if (from != null) {
   from.getText();
}

Step 7. Use some XPATH

// Get the root element
Element root = document.getRootElement();
// Get the id attribute
root.valueOf("@id");
// Get the from element
Node from = root.selectSingleNode("./from");
if (from != null) {
   from.getText();
}

A good XML tutorial can be found at w3schools.com.

Thank you.

Java-XML dalam 3 menit

20 May 2008

Selamat siang saudara2 dari Indonesia. XML adalah cara yang jelas untuk menggambarkan informasi.

Mari kita lihat contoh ini:

<?xml version="1.0" encoding="UTF-8"?>
<pesan nomor="123">
    <dari>Halim</dari>
    <kepada>Selvi</kepada>
    <isinya>Yo belajar yo!</isinya>
</pesan>

Dokumen sederhana ini menggambarkan sebuah pesan.

<pesan>
    ...
</pesan>

Pesan ini mempunyai satu attribute bernama @nomor.

<pesan nomor="...">
    ...
</pesan>

Pesan ini juga ada tiga anak.

<dari> ... </dari>
<kepada> ... </kepada>
<isinya> ... </isinya>

Langkah 1. Mendapatkan dom4j

Mendapatkan dom4j dari dom4j.org → Download → Download the current release SourceForge → dom4j-1.6.1.jar

Kalau sedang pakai Java 1.5 pilih dom4j-1.5.2.jar. Untuk Java 1.4 pakai dom4j-full.jar yang ada di dalam dom4j-1.4.zip

Langkah 2. Taruh jar di classpath

Untuk masukan jar di classpath di…

Eclipse: Project → Java Build Path → Libraries → Add External JARs…

Netbeans: File → ”Project” Properties → Libraries → Add JAR/Folder

JDeveloper 11g: Tools → Project Properties… → Libraries and Classpath → Add JAR/Directory…

Langkah 3. Membuat XML dokumen

	// Membuat dokumen
	Document dokumen = DocumentHelper.createDocument();

	// Tambah elemen pertama
	Element pertama = dokumen.addElement("pesan").addAttribute("nomor", "123");

	// Tambah elemen "dari"
	pertama.addElement("dari").addText("Halim");
	// Tambah elemen "kepada"
	pertama.addElement("kepada").addText("Selvi");
	// Tambah element "isinya"
	pertama.addElement("isinya").addText("Yo belajar yo!");

Sudah!

Langkah 4. Menyimpan XML dokumen

	// Pilih format yang rapi
	OutputFormat format = OutputFormat.createPrettyPrint();
	format.setEncoding("UTF-8");
	format.setTrimText(false);

	// Menyimpan
	XMLWriter writer = new XMLWriter(new FileWriter("C:/pesanku.xml"), format);
	writer.write(document);
	writer.close();

Langkah 5. Membaca XML dokumen

	// Menemukan file
	URL url = new File("C:/pesanku.xml").toURI().toURL();

	// Membaca XML dokumen yang ada di dalam
	Document dokumen = new SAXReader().read(url);

Langkah 6. Mengambil informasi

	// Ambil elemen pertama (pesan)
	Element pertama = document.getRootElement();

	// Ambil attribute "nomor"
	pertama.attributeValue("nomor");

	// Ambil elemen "dari"
	Element dari = pertama.element("dari");
	if (dari != null) {
		dari.getText();
	}

Langkah 7. Pakai sedikit XPATH

	// Ambil elemen pertama (pesan)
	Element pertama = document.getRootElement();

	// Ambil attribute "nomor"
	pertama.valueOf("@id");

	// Ambil elemen "dari"
	Node dari = pertama.selectSingleNode("./dari");
	if (dari != null) {
		dari.getText();
	}

Pelajaran yang bagus tentang XML ada di w3schools.com.

Terima kasih.

Java-XML σε 3 λεπτά

20 May 2008

Η XML είναι ένας σαφής και ξεκάθαρος τρόπος να περιγράφουμε δεδομένα.

Ας δούμε ένα παράδειγμα:

<?xml version="1.0" encoding="UTF-8"?>
<message id="123">
    <from>Νίκος</from>
    <to>Σοφία</to>
    <text>Καλημέρα!</text>
</message>

Αυτό το απλό κείμενο αναπαριστά ένα μήνυμα.

<message>
    ...
</message>

Παρατηρούμε ότι το μήνυμα έχει την ιδιότητα @id,

<message id="...">
    ...
</message>

και 3 παιδιά.

<from> ... </from>
<to> ... </to>
<text> ... </text>

Βήμα 1. Κατέβασε το dom4j

Πάρε το dom4j από το dom4j.org → Download → Download the current release SourceForge → dom4j-1.6.1.jar

Αν χρησιμοποιείς Java 1.5 κατέβασε το dom4j-1.5.2.jar. Για Java 1.4 κατέβασε το dom4j-1.4.zip: μέσα του είναι το dom4j-full.jar

Βήμα 2. Βάλε το jar στο classpath

Στο Eclipse: Project → Java Build Path → Libraries → Add External JARs…

Στο Netbeans: File → ”Project” Properties → Libraries → Add JAR/Folder

Στο JDeveloper 11g: Tools → Project Properties… → Libraries and Classpath → Add JAR/Directory…

Βήμα 3. Φτιάξε το XML

	// Φτιάξε το κείμενο
	Document document = DocumentHelper.createDocument();
	// Όρισε τον πατέρα
	Element root = document.addElement("message").addAttribute("id", "123");
	// Όρισε το "from"
	root.addElement("from").addText("Νίκος");
	// Όρισε το "to"
	root.addElement("to").addText("Σοφία");
	// Όρισε το "text"
	root.addElement("text").addText("Καλημέρα!");

Τόσο απλά!

Βήμα 4. Αποθήκευσε το XML

// Φρόντισε να έχει κωδικοποίηση UTF-8
		OutputFormat format = OutputFormat.createPrettyPrint();
		format.setEncoding("UTF-8");
		format.setTrimText(false);
// Αποθήκευσέ το
		XMLWriter writer = new XMLWriter(new FileWriter("C:/message.xml"), format);
		writer.write(document);
		writer.close();

Βήμα 5. Διάβασε το XML

// Βρες το αρχείο
URL url = new File("C:/message.xml").toURI().toURL();
// Διάβασε το κείμενο
Document document = new SAXReader().read(url);

Βήμα 6. Πάρε την πληροφορία

// Πάρε τον πατέρα
Element root = document.getRootElement();
// Πάρε την ιδιότητα id
root.attributeValue("id");
// Πάρε το παιδί from
Element from = root.element("from");
if (from != null) {
   from.getText();
}

Step 7. Και λίγο XPATH

// Πάρε τον πατέρα
Element root = document.getRootElement();
// Πάρε την ιδιότητα id
root.valueOf("@id");
// Πάρε το παιδί from
Node from = root.selectSingleNode("./from");
if (from != null) {
   from.getText();
}

Ένα καλό μάθημα XML βρίσκεται στο w3schools.com.

Ευχαριστώ.