[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 내장 라이브러리를 사용하는 방법을 보여줍니다.

참고 문헌: