• Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim
KodEdu
  • Anasayfa
  • Eğitimler
    • JavaScript Eğitimi
    • Angular 2 Eğitimi
    • React.js Eğitimi
    • Java 8 Eğitimi
    • Java EE 7 Eğitimi
    • Spring Framework Eğitimi
    • Git Eğitimi
  • Online Eğitimler
    • Online React.js Eğitimi
    • Online Angular 2 Eğitimi
    • Online Spring Boot Eğitimi
  • Referanslar
  • Hakkında
  • İletişim

JOOX – Java ile XML işlemenin kolay yolu

  • Posted by Kodedu
  • Categories backend, Genel, Uncategorized, XML
  • Date 12 Ekim 2014

Java ile XML biçimiyle ilgili işlemler için JAXP (JSR 206: JavaTM API for XML Processing) standardı bulunmaktadır. Bu standart içinde üç biçimde XML işlemek mümkündür. Bu yöntemler DOM, SAX ve StAX ‘tir;

Bu yöntemlerin birbirlerine göre avantaj ve dezavantaj durumları var, fakat her biri için XML işlemek zorlayıcı.

Burada ise ben JOOX kütüphanesini tanıtmak istiyorum. JOOX, Jquery kütüphanesinden esinlenen ve XML işlemeyi kolaylaştıran bir kütüphanedir. Eğer daha önceden bir JQuery deneyiminiz var ise JOOX kullanmak size çok kolay gelecektir.

JOOX Dependency

JOOX ile çalışmaya başlamak için JOOX Jar bağımlılığının Java projenizde bulanması gerekmektedir. Eğer Maven aracını kullanıyorsanız aşağıdaki Maven dependency elemanını pom.xml içerisine eklemeniz yeterlidir.

<dependency>
    <groupId>org.jooq</groupId>
    <artifactId>joox</artifactId>
    <version>1.2.0</version>
</dependency>

JOOX Başlangıç

JOOX kütüphanesi, JQuery’e benzer biçimde $ karakteri üzerinden XML elemanlarına erişmektedir. JQuery $ isimli bir fonksiyon barındırırken, JOOX $ adında statik bir Java metodu barındırmaktadır. $ statik metodu org.joox.JOOX sınıfı içerisinde bulunduğu için JOOX.$ ile bu metoda erişim sağlanmaktadır. Bu metod ise Match türünden bir nesne döndürmektedir.

Match match = JOOX.$();

Eğer istenirsa static import deyimiyle bu kullanım daha da sadeleştirilebilir.

import static org.joox.JOOX.$;

...

Match match = $();

JOOX ile XML oluşturmak

JOOX ile XML oluşturmak için $ metodunu kullanabiliriz. Örneğin aşağıdaki XML dökümanını JOOX ile oluşturmayı deneyelim.

<books>
    <book id="1">
        <name>Java ve Yazılım Tasarımı</name>
        <price>35</price>
        <author>Altuğ B. Altıntaş</author>
    </book>
    <book id="2">
        <name>Java Mimarisiyle Kurumsal Çözümler</name>
        <price>25</price>
        <author>Rahman Usta</author>
    </book>
</books>

Bunun için aşağıdaki JOOX kodlarını kullanabiliriz.

Match $books = $("<books></books>"); (1)

$books.append("<book id='1'></book>"); (2)
$books.append("<book id='2'></book>"); (3)

$books
        .find("book[id='1']") (4)
        .append("<name>Java ve Yazılım Tasarımı</name>") (5)
        .append("<price>35</price>") (6)
        .append("<author>Altuğ B. Altıntaş</author>"); (7)


$books
        .find("book[id='2']") (8)
        .append("<name>Java Mimarisiyle Kurumsal Çözümler</name>") (9)
        .append("<price>25</price>") (10)
        .append("<author>Rahman Usta</author>"); (11)

$books.write(System.out); (12)
$books.write(new File("./books.xml")); (13)
String content = $books.content(); (14)
String text = $books.text(); (15)
  1. books XML elemanı oluşturuluyor.
  2. books içine id='1' olan bir book elemanı ekliyor.
  3. books içine id='2' olan bir book elemanı ekliyor.
  4. books içinden id='1' olan elemanı seçiyor.
  5. book[id='1'] içine name elemanını ekliyor.
  6. book[id='1'] içine price elemanını ekliyor.
  7. book[id='1'] içine author elemanını ekliyor.
  8. books içinden id='2' olan elemanı seçiyor.
  9. book[id='2'] içine name elemanını ekliyor.
  10. book[id='2'] içine price elemanını ekliyor.
  11. book[id='2'] içine author elemanını ekliyor.
  12. XML içeriğini konsola çıktılıyor.
  13. XML içeriğini books.xml dosyasına yazıyor.
  14. XML içeriğini String olarak elde ediyor.
  15. XML eleman içeriğini String olarak elde ediyor.

JOOX ile XML okumak

JOOX ile XML oluşturmak için $ metodunu kullanabiliriz. Örneğin az evvel dosya sistemine yazdığımız XML dökümanını JOOX ile okumayı deneyelim.

Örnek 1
Match $books = $(new File("./books.xml")); (1)

$books.find("book").forEach(book -> { (2)

  String id = $(book).attr("id"); (3)
  String name = $(book).find("name").text(); (4)
  String author = $(book).find("author").text(); (5)
  String price = $(book).find("price").text(); (6)

  System.out.format("%s : %s - %s - %s %n", id, name, author, price);

});
  1. books.xml okunuyor ve Match nesnesi oluşturuluyor.
  2. Tüm book elemanları bir bir listeleniyor.
  3. O anki book elemanının id özniteliği okunuyor.
  4. O anki book elemanının name bilgisi okunuyor.
  5. O anki book elemanının author bilgisi okunuyor.
  6. O anki book elemanının price bilgisi okunuyor.

Yukarıdaki kodlar koşturulduğunda aşağıdaki çıktı elde ediliyor.

1 : Java ve Yazılım Tasarımı - Altuğ B. Altıntaş - 35
2 : Java Mimarisiyle Kurumsal Çözümler - Rahman Usta - 25
Örnek 2
Match $books = $(new File("./books.xml")); (1)

Match firstBook = $books.find("book").first(); (2)
Match lastBook =  $books.find("book").last(); (3)

String firstBookAuthorName = firstBook.find("author").text(); (4)
String lastBookName = lastBook.find("name").text(); (5)

System.out.format("firstBookAuthorName: %s %n",firstBookAuthorName);
System.out.format("lastBookName: %s %n",lastBookName);
  1. books.xml okunuyor ve Match nesnesi oluşturuluyor.
  2. books elemanı içindeki ilk book elemanı seçiliyor
  3. books elemanı içindeki son book elemanı seçiliyor
  4. İlk book elemanı içindeki author elemanının içeriği okuyor
  5. Son book elemanı içindeki name elemanının içeriği okuyor

Yukarıdaki kodlar koşturulduğunda aşağıdaki çıktı elde ediliyor.

firstBookAuthorName: Altuğ B. Altıntaş
lastBookName: Java Mimarisiyle Kurumsal Çözümler

Siz de kolay kullanım açısından JOOX ‘u tercih edebilirsiniz.

Örnek Uygulama

Tekrar görüşmek dileğiyle..

  • Share:
author avatar
Kodedu

Previous post

Java 8 ve JVM Dilleri
12 Ekim 2014

Next post

Java 8 Ebook
13 Ekim 2014

You may also like

api-logo
Swagger Nedir? Neden kullanılır?
10 Ekim, 2018
spring-cli-logo
Spring CLI ile Spring Boot Projeleri Hazırlamak
21 Ağustos, 2017
eureka_architecture
Spring Cloud Netflix ve Eureka Service Discovery
3 Temmuz, 2017

Leave A Reply Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta listesine kayıt olun!






Gözde yazılar

Webiner : Java 8 | Project Lambda
07Ara2012
Java EE 8 için yeni plan yolda!
13Eki2016
Swagger Nedir? Neden kullanılır?
10Eki2018
Upucuz ARM Geliştirme Kiti – Kinetis KL25Z
01Eyl2012

Son Yazılar

  • Java’da Record’lar 27 Ocak 2020
  • Swagger Nedir? Neden kullanılır? 10 Ekim 2018
  • Spring CLI ile Spring Boot Projeleri Hazırlamak 21 Ağustos 2017
  • Spring Cloud Netflix ve Eureka Service Discovery 3 Temmuz 2017
  • Online React.js Eğitimi ardından (15-25 Mayıs 2017) 31 Mayıs 2017

Son Yorumlar

  • Coupling ve Cohesion Kavramları Nedir? için Hilal
  • Naïve Bayes Sınıflandırma Algoritması için Rahman Usta
  • Naïve Bayes Sınıflandırma Algoritması için Mete
  • YAML Nedir? Neden YAML Kullanmalıyız? için kara
  • JWT (JSON Web Tokens) Nedir? Ne işe yarar? için Furkan

Get Java Software

Arşivler

Bizi takip edin

React.js Eğitimi Başlıyor
11-22 Eylül, 2017
Eğitmen
Rahman Usta
İletişim

merhaba@kodedu.com

  • Hakkında
  • Gizlilik Politikası
  • İletişim
  • Referanslar
Kodedu Bilişim Danışmanlık
Cemil Meriç mah. Çelebi sok.
No:16/3 Ümraniye/İSTANBUL
Tel: 0850 885 38 65
Alemdağ V.D.: 8960484815

KODEDU © Tüm hakları saklıdır.