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:
- Android :: Ksoap2 Kullanarak Webservislere Erişme
- Java :: Email Regex
- Java :: Objelerin Sıralanması
- Android :: SdCard İçinde Alt Klasör Oluşturma
- Android :: Statik Html ve JavaScript
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?
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>