[java] 자바에서 XML의 공백 제거하기
DOM을 사용하여 XML을 파싱하는 경우, 다음과 같은 방법으로 공백을 제거할 수 있습니다:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("example.xml"));
XPath xPath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xPath.compile("//text()[normalize-space()]");
NodeList nodeList = (NodeList) expr.evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
node.setTextContent(node.getTextContent().trim());
}
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File("output.xml"));
transformer.transform(source, result);
SAX를 사용하여 XML을 파싱하는 경우, DefaultHandler 클래스를 상속받아 ignorableWhitespace 메서드를 재정의하여 공백을 제거할 수 있습니다.
이렇게 하면 XML에서 공백이 제거된 새로운 XML 파일이 생성됩니다. 이 코드 예제는 XML 파싱 및 변환을 위해 Java 내장 라이브러리를 사용하는 방법을 보여줍니다.
참고 문헌:
- Oracle 자바 문서: https://docs.oracle.com/javase/8/docs/api/org/w3c/dom/Document.html
- 위키피디아: https://en.wikipedia.org/wiki/Document_Object_Model