Home   Java   Como criar arquivo XML em Java (DOM Parser)

Como criar arquivo XML em Java (DOM Parser)
XML em Java (DOM Parser)

Como criar arquivo XML em Java (DOM Parser)

Olá Amigos, Hoje veremos como utilizar a Linguagem Java para criar arquivos XML. Existem muitas formas de fazer essas operações: desde formas nativas da linguagem (nossa abordagem hoje) ou quanto utilizando frameworks. Em qualquer das abordagens veremos que não são tarefas que demandam grande esforço desde que conheçamos a forma mais adequada de manipular esses famosos arquivos XML (eXtensible Markup Language).

XML em Java (DOM Parser)


Uma das opções mais interessante é a utilização do Framework Criando XML em Java XStream. No site oficial há outros exemplos que podem auxiliar você a fazer várias operações até mesmo a utilização de arquivos JASON.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package br.com.feltex.webservice.dom;
 
import java.io.File;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
 
public class CriaArquivoDOM {
 
	public static void main(String[] args) {
		System.out.println("Inicio");
 
		DocumentBuilderFactory documentFactory = DocumentBuilderFactory
				.newInstance();
		DocumentBuilder dBuilder;
		try {
			dBuilder = documentFactory.newDocumentBuilder();
			Document doc = dBuilder.newDocument();
			// Cria o elemento raiz do nosso XML
			Element rootElement = doc.createElementNS(
					"http://www.feltex.com.br/aluno", "Alunos");
			// Adiciona um elemento ao documento
			doc.appendChild(rootElement);
 
			// Adiciona o primeiro elemento filho ao elemento raiz
			rootElement.appendChild(criarAluno(doc, "1", "Jose da Silva", "55",
					"Analista de Sistema", "Masculino"));
 
			// Adiciona o segundo elemento filho do elemento raiz
			rootElement.appendChild(criarAluno(doc, "2", "Maria", "22",
					"Analista de Banco de Dados", "Feminino"));
 
			//Cria os objetos que fazem referências à console e ao arquivo
			TransformerFactory transformerFactory = TransformerFactory
					.newInstance();
			Transformer transformer = transformerFactory.newTransformer();
 
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			DOMSource source = new DOMSource(doc);
 
 
			StreamResult console = new StreamResult(System.out);
			StreamResult file = new StreamResult(new File("C:/temp/alunos.xml"));
 
			//faz a transformação dos dados para arquivo e para a console!
			transformer.transform(source, console);
			transformer.transform(source, file);
			System.out.println("Fim");
 
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 
	// Criamos todos os atributos como String
	// para facilitar a escrita no XML
	private static Node criarAluno(Document doc, String matricula, String nome,
			String idade, String cargo, String genero) {
		Element aluno = doc.createElement("Aluno");
 
		// Associa a matrícula como atributo
		aluno.setAttribute("id", matricula);
 
		// Cria o elemento nome
		aluno.appendChild(getEmployeeElements(doc, aluno, "nome", nome));
 
		// Cria o elemento idade
		aluno.appendChild(getEmployeeElements(doc, aluno, "idade", idade));
 
		// Cria o elemento cargo
		aluno.appendChild(getEmployeeElements(doc, aluno, "cargo", cargo));
 
		// Cria o elemtno genero
		aluno.appendChild(getEmployeeElements(doc, aluno, "genero", genero));
 
		return aluno;
	}
 
	// Realiza a criação dos elementos texto
	private static Node getEmployeeElements(Document doc, Element elemento,
			String nome, String valor) {
		Element node = doc.createElement(nome);
		node.appendChild(doc.createTextNode(valor));
		return node;
	}
}

Conclusão


Existem maneiras mais fáceis de realizar manipulação de XML em Java, mas está é uma alternativa que deve ser conhecida e não pode ser descartada. Uma das vantagens dessa abordagen e não precisar utilizar qualquer framework é, por exemplo, a forma como trabalhamos com XML em JavaScript ou JQuery. Saber que essa abordagem existe e determinar quando deverá ser usada poderá ser muito útil em sua vida profissional.

Abraços e vida que segue!

Links relacionados


Exemplo utilizando o xStream
xStream Site oficial

Não esqueça de curtir este post nas rede sociais. Dê a sua contribuição social e ajude o autor:

Deixe uma resposta

Get Best Services from Our Business.