Java:
XML 다루기
방법:
Java는 DOM(Document Object Model), SAX(Simple API for XML), StAX(Streaming API for XML)와 같은 API를 제공하여 XML과 작업할 수 있습니다. 다음은 XML 파일을 파싱하는 DOM 예시입니다:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class XmlParser {
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("data.xml");
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("employee");
for (int i = 0; i < nodeList.getLength(); i++) {
Element element = (Element) nodeList.item(i);
System.out.println("Name: " + element.getElementsByTagName("name").item(0).getTextContent());
System.out.println("Age: " + element.getElementsByTagName("age").item(0).getTextContent());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
data.xml
이렇게 생겼다고 가정해 봅시다:
<employees>
<employee>
<name>Jane Doe</name>
<age>30</age>
</employee>
<employee>
<name>John Doe</name>
<age>40</age>
</employee>
</employees>
출력 결과는 다음과 같습니다:
Name: Jane Doe
Age: 30
Name: John Doe
Age: 40
심층 분석
XML은 90년대 후반부터 사용되어 왔으며, 다양한 시스템 간 데이터 교환을 위한 구조화되고 유연한 방법을 제공합니다. JSON이 그보다 더 단순한 문법과 JavaScript와의 긴밀한 통합으로 새로운 웹 API에 더 인기가 있지만, XML은 여전히 엔터프라이즈 환경, SOAP 기반 웹 서비스 및 Microsoft Office의 Office Open XML과 같은 문서 표준에서 널리 사용됩니다.
Java에서 XML을 파싱할 때, DOM API는 작은 문서에 적합합니다: 이는 트리 기반으로 메모리 내 XML 구조에 대한 전체 접근을 가능하게 합니다. 하지만, 큰 파일을 다룰 때는 메모리를 많이 사용할 수 있습니다. SAX와 StAX는 각각 이벤트 기반 및 스트림 기반이므로 더 메모리 친화적이지만, XML 구조를 탐색하는 데에는 덜 편리할 수 있습니다.
XML을 생성하거나 수정하기 위해, Java는 javax.xml.transform 및 javax.xml.bind(JAXB) 패키지를 제공합니다. JAXB는 Java SE 버전 10까지 Java SE의 일부였으나, Java EE 모듈의 Java SE에서 제거됨에 따라 별도의 라이브러리가 되었습니다. 이는 Java 객체를 XML로 직렬화하고 그 반대로 하는 주석 기반 방식입니다.
관련 자료
Java에서 XML 작업에 대한 더 많은 정보를 위한 관련 자료들을 확인해 보세요: