JAVA || XML 파일 생성기 만들기

소스코드

import java.io.StringWriter;
import java.util.Properties;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
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 XMLGen {

    public XMLGen() {
       
    }
   
    // DOM
    private DocumentBuilderFactory factory;
    private DocumentBuilder builder;
    private Document doc;

    public int xmlgen() {
       
        factory = DocumentBuilderFactory.newInstance();
       
        try {
            builder = factory.newDocumentBuilder();
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       
        doc = builder.newDocument();

        // root 생성
        Element root = doc.createElement(“Lyrics”);
        doc.appendChild(root);

        // child1 생성
        Element child = doc.createElement(“Token”);
        // 속성 생성
        Attr attr = doc.createAttribute(“Position”);
        // 속성 값 입력
        attr.setValue(“23:23:23”);
        child.setAttributeNode(attr);
        // text 값 입력
        child.setTextContent(“가사입니당”);
       
        // child2 생성
        Element child2 = doc.createElement(“Token”);
        // 속성 생성
        Attr attr2 = doc.createAttribute(“Position”);
        // 속성 값 입력
        attr2.setValue(“24:24:24”);
        child2.setAttributeNode(attr2);
        // text 값 입력
        child2.setTextContent(“입니당”);
       
        // root에 child들을 append
        root.appendChild(child);
        root.appendChild(child2);
       
        TransformerFactory tr_factory = TransformerFactory.newInstance();
        String xmlStr = “”;    
        try
        {
            StringWriter sw = new StringWriter();
            Properties output = new Properties();
            output.setProperty(OutputKeys.INDENT, “yes”);
            output.setProperty(OutputKeys.ENCODING, “UTF-8”);
            Transformer transformer = tr_factory.newTransformer();
            transformer.setOutputProperties(output);
            transformer.transform(new DOMSource(doc), new StreamResult(sw));
            xmlStr = sw.getBuffer ().toString ();
           
            System.out.println(xmlStr);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
       
        return 0;
    }
   
   
    public static void main(String[] args) {
        XMLGen xml = new XMLGen();
       
        xml.xmlgen();
    }
}

Leave a Reply