Introdução
Neste laboratório, aprenderemos como ler um arquivo XML usando Java. Usaremos um arquivo XML de exemplo para demonstrar a leitura do arquivo usando código Java. XML é uma linguagem de marcação (markup language) usada para armazenar e transportar dados.
Criar um arquivo XML de exemplo
Usaremos um arquivo XML de exemplo students.xml como exemplo. Ele contém alguns dados sobre estudantes e os leremos usando código Java.
Crie um novo arquivo chamado students.xml no diretório ~/project com o seguinte conteúdo:
<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>
Importar as bibliotecas necessárias
Usaremos as seguintes bibliotecas para ler um arquivo XML usando código Java:
org.w3c.dom.*javax.xml.parsers.*
Adicione as seguintes declarações no início do arquivo de código para importar as bibliotecas necessárias:
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.*;
import java.io.*;
Analisar o arquivo XML
Crie uma nova classe Java chamada Main no diretório ~/project com o seguinte conteúdo:
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(".................................");
}
}
Criamos uma instância do construtor (builder) e analisamos o arquivo XML usando o método parse. Depois disso, obtemos o elemento raiz do documento e o normalizamos, e então imprimimos seu nome. Em seguida, obtemos todos os estudantes usando o método getElementsByTagName e imprimimos um separador.
Extrair dados de cada elemento
Para extrair dados de cada elemento, iteraremos por cada tag do documento usando um loop. Para cada estudante, obteremos seus detalhes, como ID, Nome, Número de Matrícula (Roll No) e Localização.
Adicione o seguinte código dentro do loop:
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());
}
O código acima extrairá os dados de cada elemento do arquivo XML. Usando o método getAttribute, o ID de cada estudante é recuperado. Usando os métodos getElementsByTagName e getTextContent, o Nome, Número de Matrícula (Roll No) e Localização de cada estudante são recuperados.
Executar o código Java
Compile e execute o código no terminal:
javac Main.java && java Main
Você deverá ver a seguinte saída:
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
Resumo
Neste laboratório, aprendemos como ler um arquivo XML usando código Java. Aprendemos como importar as bibliotecas necessárias, analisar um arquivo XML, iterar por cada nó do elemento raiz e extrair dados de cada elemento. Você pode usar este conhecimento para ler qualquer arquivo XML usando Java e extrair dados dele.



