[java] XML 파싱 방법

XML(Extensible Markup Language)은 데이터를 저장하고 전송하기 위한 마크업 언어로, 대부분의 모던 애플리케이션에서 자주 사용됩니다. XML을 파싱하여 필요한 데이터를 추출하는 방법을 살펴보겠습니다.

1. DOM 파싱

DOM(Document Object Model) 파싱은 XML 문서를 트리 구조로 메모리에 로드하고, 트리를 탐색하여 데이터에 접근합니다. Java에서 DOM 파싱은 다음과 같은 단계로 수행할 수 있습니다:

import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import java.io.StringReader;

String xmlString = "<example>Hello, XML!</example>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xmlString));
Document document = builder.parse(is);

위 코드는 javax.xml.parsers 패키지를 사용하여 XML 문자열을 파싱하고, Document 객체를 얻는 과정을 보여줍니다.

2. SAX 파싱

SAX(Simple API for XML) 파싱은 XML 문서를 한 줄씩 읽어들이는 이벤트 기반의 방식으로, 메모리를 적게 사용한다는 장점이 있습니다. Java에서 SAX 파싱은 다음과 같은 방식으로 수행할 수 있습니다:

import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;

String xmlString = "<example>Hello, XML!</example>";
XMLReader xmlReader = XMLReaderFactory.createXMLReader();
InputSource is = new InputSource(new StringReader(xmlString));
DefaultHandler handler = new DefaultHandler();
xmlReader.setContentHandler(handler);
xmlReader.parse(is);

위 코드에서는 org.xml.sax 패키지를 사용하여 XML 문자열을 파싱하는 과정을 보여줍니다.

3. JAXB 파싱

JAXB(Java Architecture for XML Binding)는 Java 클래스를 XML 스키마에 매핑하여 XML 데이터를 객체로 바인딩하거나 그 반대로 수행하는 기술입니다. JAXB를 사용하면 XML 파싱 및 생성을 간단하게 처리할 수 있습니다.

위에서 설명한 방법들 이외에도, 다양한 라이브러리나 프레임워크를 사용하여 XML 파싱을 수행할 수 있습니다. 각 방법의 장단점을 고려하여 프로젝트에 적합한 방법을 선택하시면 됩니다.

참고문헌: