Введение
В этом практическом занятии мы научимся читать XML-файл с использованием Java. Для демонстрации процесса чтения файла с помощью кода на Java мы будем использовать пример XML-файла. XML - это язык разметки, используемый для хранения и передачи данных.
Создайте пример XML-файла
В качестве примера мы будем использовать XML-файл students.xml. Он содержит некоторые данные о студентах, которые мы будем читать с использованием кода на Java.
Создайте новый файл с именем students.xml в каталоге ~/project с следующим содержимым:
<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>
Импортируйте необходимые библиотеки
Для чтения XML-файла с использованием кода на Java мы будем использовать следующие библиотеки:
org.w3c.dom.*javax.xml.parsers.*
Добавьте следующие инструкции в начало файла с кодом, чтобы импортировать необходимые библиотеки:
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import java.io.*;
Анализируйте XML-файл
Создайте новый Java-класс с именем Main в каталоге ~/project с следующим содержимым:
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(".................................");
}
}
Мы создали экземпляр билдера и проанализировали XML-файл с использованием метода parse. Затем мы получаем корневой элемент документа, нормализуем его и выводим его имя. После этого мы получаем всех студентов с использованием метода 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 получаются Имя, Номер зачетной книжки и Местонахождение каждого студента.
Запустите Java-код
Компилируйте и запускаете код в терминале:
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
Резюме
В этом практическом занятии мы научились читать XML-файл с использованием кода на Java. Мы узнали, как импортировать необходимые библиотеки, анализировать XML-файл, перебирать каждый узел корневого элемента и извлекать данные из каждого элемента. Вы можете использовать эти знания для чтения любого XML-файла с использованием Java и извлечения из него данных.



