Java :: XML Dosyası Oluşturma

Java’da XML dosyası oluşturmam gerektiğinde bulduğum kodu, başkalarının da işine yarar umuduyla buraya da yazayım.
Amaç şu aşağıdaki formatta bir XML dosyası oluşturmak:

<sirket>
	<calisan id="1">
		<ad>İsim</ad>
		<soyAd>SOYİSİM</soyAd>
		<maas>1000</maas>
	</calisan>
	<calisan id="2">
		<ad>İsim2</ad>
		<soyAd>SOYİSİM2</soyAd>
		<maas>1000</maas>
	</calisan>
</sirket>

Kodun orijinali üzerinde fazla değişiklik yapmadan aşağıdaki haliyle inceleyelim:

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class CreateXML {
	public static void main(String[] args) {
		try {
			/**
			 * Kodun kaynağı:
			 * http://www.mkyong.com/java/how-to-create-xml-file-in-java-dom/
			 */
			DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
			
			/** Şirket */
			Document doc = docBuilder.newDocument();
			Element rootElement = doc.createElement("sirket");
			doc.appendChild(rootElement);
			
			/** Çalışan */
			Element staff = doc.createElement("calisan");
			rootElement.appendChild(staff);
			
			/** Çalışana id özelliği atama */
			Attr attr = doc.createAttribute("id");
			attr.setValue("1");
			staff.setAttributeNode(attr);
			
			/** Şöyle bir de kısayolu var */
			// staff.setAttribute("id", "1");
			
			/** Ad */
			Element firstname = doc.createElement("ad");
			firstname.appendChild(doc.createTextNode("İsim"));
			staff.appendChild(firstname);
			
			/** Soyad */
			Element lastname = doc.createElement("soyAd");
			lastname.appendChild(doc.createTextNode("SOYİSİM"));
			staff.appendChild(lastname);
			
			/** Maaş */
			Element salary = doc.createElement("maas");
			salary.appendChild(doc.createTextNode("1000"));
			staff.appendChild(salary);
			
			/** İçeriğin bir XML dosyasına yazılması */
			TransformerFactory transformerFactory = TransformerFactory.newInstance();
			Transformer transformer = transformerFactory.newTransformer();
			DOMSource source = new DOMSource(doc);
			StreamResult result = new StreamResult(new File("file.xml"));
	 
			transformer.transform(source, result);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Eğer hatasız çalışırsa proje klasörü içinde “file.xml” adında bir dosya oluşacaktır. İçeriği de aşağıdaki gibi:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sirket>
	<calisan id="1">
		<ad>İsim</ad>
		<soyAd>SOYİSİM</soyAd>
		<maas>1000</maas>
	</calisan>
</sirket>

Fazla açıklama da yazmadık ama adamlar zaten güzel yazmışlar, açıklama yazmaya pek gerek kalmamış.
Kaynak: mkyong.com

İlgili olabilecek yazılar:

Java %100 Nesne Yönelimli Bir Programlama Dili Midir?
Java :: Jersey ile RESTful Webservislere Eclipse, Maven ve Apache Tomcat Kullanarak Giriş Yapalım
Android :: JSON Parse İşlemleri – 2
Android :: JSON Parse İşlemleri – 1
Android :: Sayfalar Arası Veri Aktarımı – 1


Java :: XML Dosyası Oluşturma” yazısına 7 yorum yapılmış.

  1. hocam paylaşımlarınız için teşekkürler benim aklıma birşey takıldı şimdi oluşturduğumuz bu xml dosyası ile rapor’lar oluşturabilirmiyiz?

  2. Tabi ki oluşturulabilir, neden olmasın? Şu aşağıdaki gibi bir şey geldi aklıma, herhalde ona benzer bir yapıdan bahsediyoruz..

    <sirket>
      <elemanlar>
        <eleman>
          <tcKimlikNo>...</tcKimlikNo>
          <ad>...</ad>
          <soyAd>...</soyAd>
          <departman>.....</departman>
          <maas>...</maas>
        </eleman>
        <eleman>
          <tcKimlikNo>...</tcKimlikNo>
          <ad>...</ad>
          <soyAd>...</soyAd>
          <departman>.....</departman>
          <maas>...</maas>
        </eleman>
        ......
        ......
        ......
      </elemanlar>
    </sirket>
    
  3. elinize sağlık güzel bir yazı ben bunu jsp projemde kullanıyorum mesela bi kez bu xml oluşturdum ama sonra formdan tekrar aynı xml e eleman eklemek istiyorum bunu nasıl yapabilirim ?

  4. paylaşım için teşekkürler, burada çalışanın id si kendi birer birer artırarak ve maaşını random sayılardan üreterek nasıl oluşturabiliriz ? yani her seferinde kendimiz yazmak yerine bir döngü ile atayabilir miyiz ? maaş kısmında kullanılan createTextNode ‘a döngü aracılıgıyla nasıl integer değer atayabiliriz?

  5. Mustafa Kıvraşık

    Ben projeme xml ekledim ama şimdi jar haline getirdim ama netbeans te normal bir şekilde çalışan uygulama jar olunca xml bulamadı diye hata veriyor

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.