소개
이 랩에서는 Java 를 사용하여 XML 파일을 읽는 방법을 배웁니다. Java 코드를 사용하여 파일을 읽는 것을 시연하기 위해 샘플 XML 파일을 사용할 것입니다. XML 은 데이터를 저장하고 전송하는 데 사용되는 마크업 언어입니다.
이 랩에서는 Java 를 사용하여 XML 파일을 읽는 방법을 배웁니다. Java 코드를 사용하여 파일을 읽는 것을 시연하기 위해 샘플 XML 파일을 사용할 것입니다. XML 은 데이터를 저장하고 전송하는 데 사용되는 마크업 언어입니다.
예제로 students.xml이라는 샘플 XML 파일을 사용합니다. 이 파일에는 학생에 대한 몇 가지 데이터가 포함되어 있으며, Java 코드를 사용하여 해당 데이터를 읽을 것입니다.
~/project 디렉토리에 students.xml이라는 새 파일을 만들고 다음 내용을 추가합니다.
<students>
<student id="101">
<Name>John</Name>
<id>11001</id>
<location>India</location>
</student>
<student id="102">
<Name>Alex</Name>
<id>11002</id>
<location>Russia</location>
</student>
<student id="103">
<Name>Rohan</Name>
<id>11003</id>
<location>USA</location>
</student>
</students>
Java 코드를 사용하여 XML 파일을 읽기 위해 다음 라이브러리를 사용할 것입니다.
org.w3c.dom.*javax.xml.parsers.*필요한 라이브러리를 가져오기 위해 코드 파일의 시작 부분에 다음 문을 추가합니다.
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import java.io.*;
~/project 디렉토리에 Main이라는 새 Java 클래스를 만들고 다음 내용을 추가합니다.
public class Main {
public static void main(String[] args) throws IOException, ParserConfigurationException, SAXException {
DocumentBuilderFactory dBfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dBfactory.newDocumentBuilder();
// Fetch XML File
Document document = builder.parse(new File("students.xml"));
document.getDocumentElement().normalize();
//Get root node
Element root = document.getDocumentElement();
System.out.println(root.getNodeName());
//Get all students
NodeList nList = document.getElementsByTagName("student");
System.out.println(".................................");
}
}
빌더의 인스턴스를 생성하고 parse 메서드를 사용하여 XML 파일을 파싱했습니다. 그 후, 문서의 루트 요소를 가져와 정규화하고 이름을 출력합니다. 그 다음, getElementsByTagName 메서드를 사용하여 모든 학생을 가져와 구분 기호를 출력합니다.
각 요소에서 데이터를 추출하기 위해, 루프를 사용하여 문서의 각 태그를 반복합니다. 각 학생에 대해 ID, 이름, 롤 번호 및 위치와 같은 세부 정보를 가져옵니다.
루프 안에 다음 코드를 추가합니다.
Node node = nList.item(i);
System.out.println(); //Just a separator
if (node.getNodeType() == Node.ELEMENT_NODE) {
//Print each student's detail
Element element = (Element) node;
System.out.println("Student id : " + element.getAttribute("id"));
System.out.println("Name : " + element.getElementsByTagName("Name").item(0).getTextContent());
System.out.println("Roll No : " + element.getElementsByTagName("id").item(0).getTextContent());
System.out.println("Location : " + element.getElementsByTagName("location").item(0).getTextContent());
}
위의 코드는 XML 파일의 각 요소에서 데이터를 추출합니다. getAttribute 메서드를 사용하여 각 학생의 ID 를 검색합니다. getElementsByTagName 및 getTextContent 메서드를 사용하여 각 학생의 이름, 롤 번호 및 위치를 검색합니다.
터미널에서 코드를 컴파일하고 실행합니다:
javac Main.java && java Main
다음과 같은 출력을 볼 수 있습니다:
students
.................................
Student id : 101
Name : John
Roll No : 11001
Location : India
Student id : 102
Name : Alex
Roll No : 11002
Location : Russia
Student id : 103
Name : Rohan
Roll No : 11003
Location : USA
이 랩에서는 Java 코드를 사용하여 XML 파일을 읽는 방법을 배웠습니다. 필요한 라이브러리를 가져오고, XML 파일을 파싱 (parsing) 하고, 루트 요소의 각 노드를 반복하고, 각 요소에서 데이터를 추출하는 방법을 배웠습니다. 이 지식을 사용하여 Java 를 사용하여 모든 XML 파일을 읽고 데이터를 추출할 수 있습니다.