Ol\u00e1 Amigos, Hoje veremos como utilizar a Linguagem Java para criar arquivos XML. Existem muitas formas de fazer essas opera\u00e7\u00f5es: desde formas nativas da linguagem (nossa abordagem hoje) ou quanto utilizando frameworks. Em qualquer das abordagens veremos que n\u00e3o s\u00e3o tarefas que demandam grande esfor\u00e7o desde que conhe\u00e7amos a forma mais adequada de manipular esses famosos arquivos XML (eXtensible Markup Language).<\/p>\n
<\/p>\n
Abra\u00e7os e vida que segue!<\/p>\n Como criar arquivo XML em Java (DOM Parser) Ol\u00e1 Amigos, Hoje veremos como utilizar a Linguagem Java para criar arquivos XML. Existem muitas formas de fazer essas opera\u00e7\u00f5es: desde formas nativas da linguagem (nossa abordagem hoje) ou quanto utilizando frameworks. …<\/p>\n
\n Uma das op\u00e7\u00f5es mais interessante \u00e9 a utiliza\u00e7\u00e3o do Framework Criando XML em Java XStream<\/a>. No site oficial h\u00e1 outros exemplos que podem auxiliar voc\u00ea a fazer v\u00e1rias opera\u00e7\u00f5es at\u00e9 mesmo a utiliza\u00e7\u00e3o de arquivos JASON.<\/p>\n\r\npackage br.com.feltex.webservice.dom;\r\n\r\nimport java.io.File;\r\n\r\nimport javax.xml.parsers.DocumentBuilder;\r\nimport javax.xml.parsers.DocumentBuilderFactory;\r\nimport javax.xml.transform.OutputKeys;\r\nimport javax.xml.transform.Transformer;\r\nimport javax.xml.transform.TransformerFactory;\r\nimport javax.xml.transform.dom.DOMSource;\r\nimport javax.xml.transform.stream.StreamResult;\r\n\r\nimport org.w3c.dom.Document;\r\nimport org.w3c.dom.Element;\r\nimport org.w3c.dom.Node;\r\n\r\npublic class CriaArquivoDOM {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tSystem.out.println(\"Inicio\");\r\n\r\n\t\tDocumentBuilderFactory documentFactory = DocumentBuilderFactory\r\n\t\t\t\t.newInstance();\r\n\t\tDocumentBuilder dBuilder;\r\n\t\ttry {\r\n\t\t\tdBuilder = documentFactory.newDocumentBuilder();\r\n\t\t\tDocument doc = dBuilder.newDocument();\r\n\t\t\t\/\/ Cria o elemento raiz do nosso XML\r\n\t\t\tElement rootElement = doc.createElementNS(\r\n\t\t\t\t\t\"http:\/\/www.feltex.com.br\/aluno\", \"Alunos\");\r\n\t\t\t\/\/ Adiciona um elemento ao documento\r\n\t\t\tdoc.appendChild(rootElement);\r\n\r\n\t\t\t\/\/ Adiciona o primeiro elemento filho ao elemento raiz\r\n\t\t\trootElement.appendChild(criarAluno(doc, \"1\", \"Jose da Silva\", \"55\",\r\n\t\t\t\t\t\"Analista de Sistema\", \"Masculino\"));\r\n\r\n\t\t\t\/\/ Adiciona o segundo elemento filho do elemento raiz\r\n\t\t\trootElement.appendChild(criarAluno(doc, \"2\", \"Maria\", \"22\",\r\n\t\t\t\t\t\"Analista de Banco de Dados\", \"Feminino\"));\r\n\r\n\t\t\t\/\/Cria os objetos que fazem refer\u00eancias \u00e0 console e ao arquivo\r\n\t\t\tTransformerFactory transformerFactory = TransformerFactory\r\n\t\t\t\t\t.newInstance();\r\n\t\t\tTransformer transformer = transformerFactory.newTransformer();\r\n\r\n\t\t\ttransformer.setOutputProperty(OutputKeys.INDENT, \"yes\");\r\n\t\t\tDOMSource source = new DOMSource(doc);\r\n\r\n\t\t\t\r\n\t\t\tStreamResult console = new StreamResult(System.out);\r\n\t\t\tStreamResult file = new StreamResult(new File(\"C:\/temp\/alunos.xml\"));\r\n\r\n\t\t\t\/\/faz a transforma\u00e7\u00e3o dos dados para arquivo e para a console!\r\n\t\t\ttransformer.transform(source, console);\r\n\t\t\ttransformer.transform(source, file);\r\n\t\t\tSystem.out.println(\"Fim\");\r\n\r\n\t\t} catch (Exception e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}\r\n\r\n\t\/\/ Criamos todos os atributos como String\r\n\t\/\/ para facilitar a escrita no XML\r\n\tprivate static Node criarAluno(Document doc, String matricula, String nome,\r\n\t\t\tString idade, String cargo, String genero) {\r\n\t\tElement aluno = doc.createElement(\"Aluno\");\r\n\r\n\t\t\/\/ Associa a matr\u00edcula como atributo\r\n\t\taluno.setAttribute(\"id\", matricula);\r\n\r\n\t\t\/\/ Cria o elemento nome\r\n\t\taluno.appendChild(getEmployeeElements(doc, aluno, \"nome\", nome));\r\n\r\n\t\t\/\/ Cria o elemento idade\r\n\t\taluno.appendChild(getEmployeeElements(doc, aluno, \"idade\", idade));\r\n\r\n\t\t\/\/ Cria o elemento cargo\r\n\t\taluno.appendChild(getEmployeeElements(doc, aluno, \"cargo\", cargo));\r\n\r\n\t\t\/\/ Cria o elemtno genero\r\n\t\taluno.appendChild(getEmployeeElements(doc, aluno, \"genero\", genero));\r\n\r\n\t\treturn aluno;\r\n\t}\r\n\r\n\t\/\/ Realiza a cria\u00e7\u00e3o dos elementos texto\r\n\tprivate static Node getEmployeeElements(Document doc, Element elemento,\r\n\t\t\tString nome, String valor) {\r\n\t\tElement node = doc.createElement(nome);\r\n\t\tnode.appendChild(doc.createTextNode(valor));\r\n\t\treturn node;\r\n\t}\r\n}\r\n<\/pre>\n
Conclus\u00e3o<\/H2>
\n Existem maneiras mais f\u00e1ceis de realizar manipula\u00e7\u00e3o de XML em Java, mas est\u00e1 \u00e9 uma alternativa que deve ser conhecida e n\u00e3o pode ser descartada. Uma das vantagens dessa abordagen e n\u00e3o precisar utilizar qualquer framework \u00e9, por exemplo, a forma como trabalhamos com XML em JavaScript ou JQuery. Saber que essa abordagem existe e determinar quando dever\u00e1 ser usada poder\u00e1 ser muito \u00fatil em sua vida profissional.<\/p>\nLinks relacionados<\/H2>
\nExemplo utilizando o xStream<\/a>
\nxStream Site oficial<\/a><\/p>\nN\u00e3o esque\u00e7a de curtir este post nas rede sociais. D\u00ea a sua contribui\u00e7\u00e3o social e ajude o autor:<\/H2><\/p>\n","protected":false},"excerpt":{"rendered":"