아래 소스는 doc 구조를 string 으로 변환해주는 메소드.
맨 아래 메소드 리턴에 변환해서 사용하기 위해 필요.
// doc -> string 으로 변환 메소드
String output = "";
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = null;
try {
transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringWriter writer = new StringWriter();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
output = writer.getBuffer().toString();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
return output;
쿼리결과 가공하여 아래 소스처럼 경로에 생성.
// ======== XML, XLS 업로드 및 DB INSERT 로직 ========
try {
// ======== XML 로직 ( 시작 ) ========
File xmlFileName = new File("c:\storage\test.xml");
BufferedWriter fw = new BufferedWriter(new FileWriter(xmlFileName, true));
fw.write(쿼리결과); // 쿼리결과
fw.flush();
fw.close(); // bufferedWriter close
// ======== XML 로직 ( 종료 ) ========
// ======== XLS 로직 ( 시작 ) ========
File xlsFileName = new File("c:\storage\test.xls");
FileOutputStream fos = new FileOutputStream(xlsFileName);
XSSFWorkbook workBook = 엑셀 생성 유틸 메소드 실행 ( 쿼리결과 리스트 넣어서 )
workBook.write(fos);
// ======== XLS 로직 ( 종료 ) ========
fos.close(); // FileOutputStream close
} catch (Exception e) {
e.printStackTrace();
}
XML String을 doc 형태로 변경
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder;
Document doc = null;
StringBuffer sb = new StringBuffer();
try {
docBuilder = docFactory.newDocumentBuilder();
doc = docBuilder.newDocument();
doc.setXmlStandalone(true); //standalone="no" 를 없애준다.
// XML ROOT
sb.append("<ROOT>");
for ( 객체 a : xml 쿼리 결과 ) {
sb.append(a.getXml());
}
sb.append("</ROOT>");
// DB에 있는 XML 형태의 스트링 NODE 로 변환
Document doc2 = docBuilder.parse(new ByteArrayInputStream(sb.toString().getBytes()));
Node node = doc.importNode(doc2.getDocumentElement(), true);
// 노드 Document 객체에 append
doc.appendChild(node);
} catch (Exception e) {
e.printStackTrace();
}
return getXmlString(doc); // doc 구조를 string 으로 변환. 맨 위소스
'프로그래밍 > Java' 카테고리의 다른 글
Java 필터 개념 정리 (0) | 2021.03.03 |
---|---|
try ~ catch 구문에서 트랜잭션 롤백 안되는 문제 (0) | 2020.10.06 |
프리징 현상 해결방법 (0) | 2019.12.18 |
JDK, JRE, JVM 은 무엇인가 (0) | 2019.09.28 |
생성자 (0) | 2019.09.22 |
댓글