java 로 xml 생성 하는 소스 입니다.
인터넷으로 검색한 결과 가장 이해하기 쉽고 간단한 소스 같습니다.
저같은 경우 정렬문제와 standalone="no" 이 상위에 포함되는 문제가 있었는데 해당 소스에서는 해당 문제를 해결했습니다.
위와 같은 형식으로 생성되는 소스입니다.
어렵지 않아서 보시면 금방 이해 되실꺼 같습니다.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | import java.io.File; import java.io.FileOutputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; 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.Document; import org.w3c.dom.Element; public class CreateXml { public static void main (String[] args) { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); // book 엘리먼트 Document doc = docBuilder.newDocument(); doc.setXmlStandalone(true); //standalone="no" 를 없애준다. Element book = doc.createElement("book"); doc.appendChild(book); // code 엘리먼트 Element code = doc.createElement("code"); book.appendChild(code); // 속성값 정의 (id:1) code.setAttribute("id", "1"); //code.setAttribute("type", "novel"); // name 엘리먼트 Element name = doc.createElement("name"); name.appendChild(doc.createTextNode("사람은 무엇으로 사는가?")); code.appendChild(name); // writer 엘리먼트 Element writer = doc.createElement("writer"); writer.appendChild(doc.createTextNode("톨스토이")); code.appendChild(writer); // price 엘리먼트 Element price = doc.createElement("price"); price.appendChild(doc.createTextNode("100")); code.appendChild(price); code = doc.createElement("code"); book.appendChild(code); // 속성값 정의 (id:2) code.setAttribute("id", "2"); code.setAttribute("type", "novel"); // name 엘리먼트 name = doc.createElement("name"); name.appendChild(doc.createTextNode("홍길동 전")); code.appendChild(name); // writer 엘리먼트 writer = doc.createElement("writer"); writer.appendChild(doc.createTextNode("허균")); code.appendChild(writer); // price 엘리먼트 price = doc.createElement("price"); price.appendChild(doc.createTextNode("300")); code.appendChild(price); // XML 파일로 쓰기 TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); //정렬 스페이스4칸 transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //들여쓰기 transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "yes"); //doc.setXmlStandalone(true); 했을때 붙어서 출력되는부분 개행 DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(new FileOutputStream(new File("D://tmp/book.xml"))); transformer.transform(source, result); System.out.println("=========END========="); }catch (Exception e){ e.printStackTrace(); } } } |
java 엑셀 파일 읽기 (xlsx) (15) | 2019.03.08 |
---|---|
java SFTP key Example (인증키 테스트) (0) | 2018.12.04 |
이클립스 jsp 프로젝트 만들기 (Dynamic Web Project) (0) | 2018.07.07 |
문자열에 특수문자 여부 확인 (한글, 영어, 숫자) (0) | 2018.02.23 |
자바 이미지 사이즈 비율 변경 (java image resize) (1) | 2018.01.16 |
댓글 영역