Olá, preciso mais uma vez de ajuda. Fiz um parser e está funcionando normal, está recuperando os dados normalmente, porém quero jogar esses dados em um txt mas não consigo. Segue abaixo implementação do parser:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.*;
public class ParserXML
{
private DocumentBuilderFactory construtorDocumento;
private DocumentBuilder parser;
private Document documentoXML;
private Element listaGeralTagsAgrupamento,
listaValoresAtributoIDRegistro,
listaTagsDados;
private NodeList listaTagsRegistro,
listaAtributosTagDados;
private NamedNodeMap atributos;
public static String[] listaIDRegistro,
listaDadosNome,
listaDadosSenha,
listaDadosDeficiencia,
listaDadosFoto;
int i,j,k, totalTagsRegistro, totalTagsSimbolo;
public ParserXML(String nomeArquivoXML) throws Exception
{
if (nomeArquivoXML.equals("c:/Arquivo.xml")){
construtorDocumento = DocumentBuilderFactory.newInstance();
parser = construtorDocumento.newDocumentBuilder();
documentoXML = parser.parse(nomeArquivoXML);
listaGeralTagsAgrupamento = documentoXML.getDocumentElement();
try
{
// Constroi uma lista geral com todas as tags de agrupamento,
// iniciando pela raiz <gramatica>
listaTagsRegistro = listaGeralTagsAgrupamento.getElementsByTagName("registro");
totalTagsRegistro = listaTagsRegistro.getLength();
// Constroi listas de Strings, de acordo com o total de tags <estado>
// para armazenar valores de atributos
listaIDRegistro = new String[totalTagsRegistro];
listaDadosNome = new String[totalTagsRegistro];
listaDadosSenha = new String[totalTagsRegistro];
listaDadosDeficiencia = new String[totalTagsRegistro];
listaDadosFoto = new String[totalTagsRegistro];
System.out.println("Total de Tags <registro> = " + totalTagsRegistro);
System.out.println();
for (i = 0; i < totalTagsRegistro; i++)
{
// Recupera o valor do atributo "id" em cada tag <registro>
listaValoresAtributoIDRegistro = (Element) listaTagsRegistro.item(i);
listaIDRegistro[i] = listaValoresAtributoIDRegistro.getAttribute("id");
}
for (i=0; i < totalTagsRegistro; i++)
{
// recupera a tag <dados> em cada tag <estado>
listaTagsDados = (Element)listaTagsRegistro.item(i);
listaAtributosTagDados = listaTagsDados.getElementsByTagName("dados");
// controi a lista de atributos da tag <Dados> em
// cada tag <registro>
atributos = listaAtributosTagDados.item(0).getAttributes();
// recupera valores dos atributos "nome","senha","deficiencia" e "foto" em
// cada tag <dados> de cada tag <registros>
listaDadosNome[i] = atributos.item(2).getNodeValue();
listaDadosSenha[i] = atributos.item(3).getNodeValue();
listaDadosDeficiencia[i] = atributos.item(0).getNodeValue();
listaDadosFoto[i] = atributos.item(1).getNodeValue();
}
// Apresentando os valores recuperados das tags XML
// e seus atributos
for (i=0; i < totalTagsRegistro; i++)
{
System.out.println("==================================");
System.out.println("Registro id = " + listaIDRegistro[i]);
System.out.println("Nome = " + listaDadosNome[i]);
System.out.println("Senha = " + listaDadosSenha[i]);
System.out.println("Deficiencia = " + listaDadosDeficiencia[i]);
System.out.println("Foto = " + listaDadosFoto[i]);
System.out.println("==================================\n");
}
}
catch(Exception erro)
{
// Em caso de erro no processamento do documento XML
// Bad-Formatted XML Document
System.out.println("Erro de processamento do documentoXML XML " + erro.getMessage());
}
}
}
A Saída está sendo:
==================================
Registro id = 1
Nome = Pedro
Senha = 1
Deficiencia = Auditiva
Foto = c:/user/foto.jpg
Como jogar essas informações para um txt da seguinte maneira
Pedro=1;Auditiva#c:/user/foto.jpg%
Desde já agradeço…