Como criar arquivo XML em Java (DOM Parser)

Como criar arquivo XML em Java (DOM Parser)

Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380

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 um comentário