[java] XML 파일에서 특정 요소의 속성 값 가져오기

XML은 많은 소프트웨어 응용 프로그램에서 구성 파일로 사용됩니다. Java에서 XML 파일을 읽어와 특정 요소의 속성 값을 가져오는 방법을 알아보겠습니다.

XML 파일 구조 예시

<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
</bookstore>

Java에서 속성 값 가져오기

Java에서는 javax.xml.parsers 패키지를 사용하여 XML을 파싱하고, org.w3c.dom 패키지를 사용하여 DOM(Document Object Model)을 다룰 수 있습니다. 여기서는 특정 요소의 속성 값을 가져오는 방법을 다루겠습니다.

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;

public class ReadXML {
    public static void main(String[] args) {
        try {
            File xmlFile = new File("books.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(xmlFile);

            doc.getDocumentElement().normalize();

            NodeList bookList = doc.getElementsByTagName("book");

            for (int temp = 0; temp < bookList.getLength(); temp++) {
                Element bookElement = (Element) bookList.item(temp);
                String category = bookElement.getAttribute("category");
                System.out.println("Category : " + category);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 예제에서는 books.xml 파일을 읽어와 각 <book> 요소의 category 속성 값을 출력하는 간단한 예시를 보여줍니다.

마무리

이제 Java에서 XML 파일을 파싱하고 특정 요소의 속성 값을 가져오는 방법에 대해 알아보았습니다. 이를 응용하여 실제 프로젝트에서 XML 파일을 다룰 때 유용하게 활용할 수 있을 것입니다.

참고 자료: