[java] XML 파일에서 특정 요소가 포함된 모든 요소 찾기

XML 파일에서 특정 요소가 포함된 모든 요소를 찾는 방법에 대해 알아보겠습니다.

1. XPath를 사용하여 특정 요소 찾기

XPath를 사용하면 XML에서 특정 요소를 선택할 수 있습니다. 특정 요소를 포함한 모든 하위 요소를 찾으려면 XPath 식을 사용하여 해당 요소를 찾아야 합니다.

예를 들어, 다음은 XPath로 “book” 요소가 포함된 모든 요소를 찾는 방법입니다.

//book

2. Java에서 XPath 사용하기

Java에서는 javax.xml.xpath 라이브러리를 사용하여 XPath를 사용할 수 있습니다. 아래는 Java에서 XPath를 사용하여 특정 요소를 포함한 모든 요소를 찾는 방법입니다.

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

public class XPathExample {
    public static void main(String[] args) throws Exception {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse("data.xml");
        
        XPathFactory xpathfactory = XPathFactory.newInstance();
        XPath xpath = xpathfactory.newXPath();
        
        XPathExpression expr = xpath.compile("//book");
        
        NodeList nodeList = (NodeList) expr.evaluate(doc, javax.xml.xpath.XPathConstants.NODESET);
        
        for (int i = 0; i < nodeList.getLength(); i++) {
            System.out.println(nodeList.item(i).getNodeName());
        }
    }
}

위의 예제는 “data.xml” 파일에서 XPath를 사용하여 “book” 요소를 포함한 모든 요소를 찾아 출력합니다.

이렇게하면 XML 파일에서 특정 요소를 포함한 모든 요소를 찾을 수 있습니다.

참고 자료