Bu sitedeki yazıların tamamı F. Oğuz ÖZKEROĞLU isimli şahıs tarafından uydurulmuş bilgilerden oluşmaktadır.

İçeriği kullanmak için kimseden izin alınmasına gerek yoktur.

tarafından, Kasım 1, 2011 tarihinde yazılmıştır.

java

Etiketler , , ,


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 :: XML Dosyası Oluşturma” yazısına 2 yorum

  1. taha diyor ki:

    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. Oguz diyor ki:

    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>
    

Bir cevap yazın