[java] XML 파일에서 특정 요소의 위치 찾기
-
Java XML 파싱 라이브러리 추가: 먼저, XML 파싱을 위해 Java XML 파싱 라이브러리인
javax.xml.parsers
를 사용해야 합니다. 일반적으로 Apache Xerces나 Java 내장 라이브러리를 활용할 수 있습니다. -
XML 파일로부터 Document 객체 생성: XML 파일을 파싱하여 Document 객체를 생성해야 합니다. 다음은 파일로부터 Document 객체를 생성하는 예제입니다.
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
public class XmlParser {
public static void main(String[] args) {
try {
File xmlFile = new File("example.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- XPath를 사용하여 요소 이동: XPath는 XML 문서의 구조를 나타내는 언어로, 특정 요소를 식별하고 선택하는 데 사용됩니다. XPath를 사용하여 특정 요소의 위치를 찾는 예제는 다음과 같습니다.
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.NodeList;
public class XmlParser {
public static void main(String[] args) {
// 이전에 Document 객체를 얻은 후에 실행
try {
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("//book[title='The Great Gatsby']");
NodeList nodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
위의 예제에서 //book[title='The Great Gatsby']
는 ‘title’ 요소가 ‘The Great Gatsby’인 모든 ‘book’ 요소를 검색합니다.
이와 같은 방법을 사용하여 Java에서 XML 파일에서 특정 요소의 위치를 찾을 수 있습니다. 필요에 따라 XPath 식을 조정하여 다양한 XML 문서에서 원하는 위치의 요소를 찾을 수 있습니다.