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).
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
Deixe um comentário
Você precisa fazer o login para publicar um comentário.