Ola galera, preciso da ajuda de vc´s, estou gerando um arquivo xml, por linguagem c, este recebe o argumento de java e depois tento receber os dados gerados por c, lendo um arquivo xml, so ta dando erro, por favor me ajudem a identifica-lo
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.io.IOException;
import java.awt.*;
import javax.swing.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
public class ConsultaCliente extends JFrame implements WindowListener, ActionListener {
JPanel Painel, Painel2;
JLabel CPF, nome, Nascimento, rg, rua, bairro, numero, complemento,cidade, cep, uf, tel, cel, email, limite, obs;
JTextField rCPF, rnome, rCodigo, rrua, rbairro, rcomplemento, rcidade, remail, ruf, rnumero,rlimite, rcpf, rcep, rdataNascimento, rtel, rcel, rrg, robs;
JButton Consultar, Limpar, Voltar;
Principal principal;
File arquivoDisco;
public static String ocpf;
String recebeuxml, cnome, cbairro, ccidade, cobs, ccomplemento, crua, ccpf;
ParserXMLconCPF parsercpf;
public ConsultaCliente() throws SAXException, ParserConfigurationException {
getContentPane().setLayout(null);
setTitle("Comercio ID");
setBackground(Color.WHITE);
setBounds(500, 0, 300, 120);
setResizable(false);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
Painel = new JPanel();
Painel.setLayout(null);
Painel.setBackground(Color.WHITE);
Painel.setBounds(0, 0, 300, 100);
Painel2 = new JPanel();
Painel2.setLayout(null);
Painel2.setBackground(Color.WHITE);
Painel2.setBounds(0, 0, 300, 540);
CPF = new JLabel("CPF: ");
CPF.setBounds(0, 30, 200, 25);
rCPF = new JTextField();
rCPF.setBackground(Color.white);
rCPF.setForeground(Color.black);
rCPF.setBounds(40, 30, 250, 25);
nome = new JLabel("Nome: ");
nome.setBounds(0, 60, 200, 25);
rnome = new JTextField();
rnome.setBackground(Color.white);
rnome.setForeground(Color.black);
rnome.setBounds(40, 60, 250, 25);
Nascimento = new JLabel("Data de Nasc.: ");
Nascimento.setBounds(0, 90, 200, 25);
rdataNascimento = new JTextField();
rdataNascimento.setBackground(Color.white);
rdataNascimento.setForeground(Color.black);
rdataNascimento.setBounds(40, 90, 250, 25);
rg = new JLabel("CPF: ");
rg.setBounds(0, 30, 200, 25);
rrg = new JTextField();
rrg.setBackground(Color.white);
rrg.setForeground(Color.black);
rrg.setBounds(40, 30, 250, 25);
cep = new JLabel("CEP: ");
cep.setBounds(0,180,200,25);
rcep = new JFormattedTextField();
rcep.setBackground(Color.white);
rcep.setForeground(Color.black);
rcep.setBounds(45,180,255,25);
rua = new JLabel("Rua: ");
rua.setBounds(0,210,200,25);
rrua = new JTextField();
rrua.setBackground(Color.white);
rrua.setForeground(Color.black);
rrua.setBounds(45,210,255,25);
bairro = new JLabel("Bairro: ");
bairro.setBounds(0,240,200,25);
rbairro = new JTextField();
rbairro.setBackground(Color.white);
rbairro.setForeground(Color.black);
rbairro.setBounds(45,240,255,25);
complemento = new JLabel("Complemento: ");
complemento.setBounds(0,270,200,25);
rcomplemento = new JTextField();
rcomplemento.setBackground(Color.white);
rcomplemento.setForeground(Color.black);
rcomplemento.setBounds(85,270,215,25);
numero = new JLabel("Numero: ");
numero.setBounds(0,300,200,25);
rnumero = new JTextField();
rnumero.setBackground(Color.white);
rnumero.setForeground(Color.black);
rnumero.setBounds(50,300,255,25);
cidade = new JLabel("Cidade: ");
cidade.setBounds(0,330,200,25);
rcidade = new JTextField();
rcidade.setBackground(Color.white);
rcidade.setForeground(Color.black);
rcidade.setBounds(45,330,255,25);
uf = new JLabel("UF: ");
uf.setBounds(0,360,200,25);
ruf = new JTextField();
ruf.setBackground(Color.white);
ruf.setForeground(Color.black);
ruf.setBounds(45,360,255,25);
tel = new JLabel("TEL: ");
tel.setBounds(0,390,200,25);
rtel = new JTextField();
rtel.setBackground(Color.white);
rtel.setForeground(Color.black);
rtel.setBounds(45,390,255,25);
cel = new JLabel("CEL: ");
cel.setBounds(0,420,200,25);
rcel = new JTextField();
rcel.setBackground(Color.white);
rcel.setForeground(Color.black);
rcel.setBounds(45,420,255,25);
email = new JLabel("EMAIL: ");
email.setBounds(0,450,200,25);
remail = new JTextField();
remail.setBackground(Color.white);
remail.setForeground(Color.black);
remail.setBounds(45,450,255,25);
limite = new JLabel("LIMITE: ");
limite.setBounds(0,480,200,25);
rlimite = new JTextField();
rlimite.setBackground(Color.white);
rlimite.setForeground(Color.black);
rlimite.setBounds(45,480,255,25);
obs = new JLabel("OBS: ");
obs.setBounds(0,510,200,25);
robs = new JTextField();
robs.setBackground(Color.white);
robs.setForeground(Color.black);
robs.setBounds(45,510,255,25);
Consultar = new JButton("Consultar");
Consultar.setBounds(40, 65, 95, 25);
Consultar.setForeground(Color.black);
Consultar.addActionListener(this);
Limpar = new JButton("Limpar");
Limpar.setBounds(140, 65, 95, 25);
Limpar.setForeground(Color.black);
Limpar.addActionListener(this);
Voltar = new JButton("Voltar");
Voltar.setBounds(0, 0, 70, 25);
Voltar.setForeground(Color.black);
Voltar.addActionListener(this);
Painel.add(Consultar);
Painel.add(CPF);
Painel.add(rCPF);
Painel.add(Limpar);
Painel.add(Voltar);
getContentPane().add(Painel);
super.addWindowListener(this);
}
public void windowOpened(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
}
public void windowClosed(WindowEvent e) {
this.dispose();
System.exit(0);
}
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowActivated(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}
public void actionPerformed(ActionEvent e) {
Object objetoRecebeuEvento;
objetoRecebeuEvento = e.getSource();
if (objetoRecebeuEvento == Limpar) {
rCPF.setText(null);
}
if (objetoRecebeuEvento == Consultar)
{
try
{
ccpf = rCPF.getText();
Runtime.getRuntime().exec("c:/temp/Consulta_cliente.exe "+ccpf);
}catch (IOException ex){
Logger.getLogger(ConsultaCliente.class.getName()).log(Level.SEVERE, null, ex);
}
ocpf = rCPF.getText();
try
{
Thread.sleep(5000);
parsercpf = new ParserXMLconCPF("c:/temp/aprovado.xml");
}
catch (Exception ex)
{
Logger.getLogger(JanelaConsultaCPF.class.getName()).log(Level.SEVERE, null, ex);
}
cnome =(ParserXMLconCPF.nome);
cnome = cnome.replace("_"," ");
System.out.println(cnome);
rnome.setText(cnome);
rcpf.setText(ParserXMLconCPF.cpf);
rg.setText(ParserXMLconCPF.rg);
rdataNascimento.setText(ParserXMLconCPF.nascimento);
crua = (ParserXMLconCPF.rua);
crua = crua.replace("_", " ");
rrua.setText(crua);
cbairro = (ParserXMLconCPF.bairro);
cbairro = cbairro.replace("_"," ");
rbairro.setText(cbairro);
ccidade = ParserXMLconCPF.cidade;
ccidade = ccidade.replace("_"," ");
rcidade.setText(ccidade);
rnumero.setText(ParserXMLconCPF.numero);
ccomplemento = ParserXMLconCPF.complemento;
ccomplemento = ccomplemento.replace("_"," ");
rcomplemento.setText(ccomplemento);
ruf.setText(ParserXMLconCPF.uf);
rtel.setText(ParserXMLconCPF.tel);
rcel.setText(ParserXMLconCPF.cel);
remail.setText(ParserXMLconCPF.email);
rlimite.setText(ParserXMLconCPF.limite);
robs.setText(ParserXMLconCPF.obs);
rcep.setText(ParserXMLconCPF.cep);
Painel.add(rnome);
Painel.add(rcpf);
Painel.add(rrg);
Painel.add(Limpar);
Painel.add(rdataNascimento);
Painel.add(rrua);
Painel.add(rbairro);
Painel.add(rcidade);
Painel.add(rnumero);
Painel.add(rcomplemento);
Painel.add(ruf);
Painel.add(rtel);
Painel.add(rcel);
Painel.add(remail);
Painel.add(rlimite);
Painel.add(robs);
getContentPane().add(Painel);
Painel.setVisible(true);
setBounds(500, 0, 300, 560);
Painel.setBounds(0,0,300,540);
}
if (objetoRecebeuEvento == Voltar)
{
principal = new Principal();
principal.setVisible(true);
this.setVisible(false);
}
}
}
bem este codigo acima e da janela de consulta que chama o programa em c, que gera o xml, portanto logo abaixo vem o parser q tambem e chamado pela janela...
import java.awt.*;
import javax.swing.*;
import java.util.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.*;
public class ParserXMLconCPF {
private DocumentBuilderFactory construtorDocumento;
private Element elementoXML, itemXML;
private NodeList listaNosArvore, listaFilhos;
private NamedNodeMap atributos;
private DocumentBuilder construtor;
private Document documento;
public static TreeMap mapa;
public static String nome, cpf,rg, nascimento, tel, cel, rua, bairro, complemento, numero, cidade, cep, uf, email, limite, obs;
public static String rnome, rcpf, rrg, rnascimento, rtel, rcel, rrua, rbairro, rcomplemento, rnumero, rcidade, rcep, ruf, remail, rlimite, robs;
int i, j, k, totalRegistros;
public ParserXMLconCPF(String nomeArquivoXML) throws Exception
{
construtorDocumento = DocumentBuilderFactory.newInstance();
construtor = construtorDocumento.newDocumentBuilder();
documento = construtor.parse(nomeArquivoXML);
elementoXML = documento.getDocumentElement();
mapa = new TreeMap();
try
{
listaNosArvore = elementoXML.getElementsByTagName("registro");
totalRegistros = listaNosArvore.getLength();
System.out.println("Total de Registros = " + totalRegistros);
for (i = 0; i < totalRegistros; i++)
{
itemXML = (Element) listaNosArvore.item(i);
listaFilhos = itemXML.getElementsByTagName("dados");
// controi multiplas listas de atributos da tag <dados>
atributos = listaFilhos.item(0).getAttributes();
rcpf = atributos.item(1).getNodeValue();
rnome = atributos.item(2).getNodeValue();
rnascimento = atributos.item(3).getNodeValue();
rrg = atributos.item(4).getNodeValue();
rtel = atributos.item(5).getNodeValue();
rcel = atributos.item(6).getNodeValue();
rrua = atributos.item(7).getNodeValue();
rcomplemento = atributos.item(8).getNodeValue();
rnumero = atributos.item(9).getNodeValue();
rbairro = atributos.item(10).getNodeValue();
rcidade = atributos.item(11).getNodeValue();
rcep = atributos.item(12).getNodeValue();
ruf = atributos.item(13).getNodeValue();
remail = atributos.item(14).getNodeValue();
rlimite = atributos.item(15).getNodeValue();
robs = atributos.item(16).getNodeValue();
if (rcpf.equals(ConsultaCliente.ocpf))
{
nome = new String(rnome);
cpf = new String(rcpf);
nascimento = new String(rnascimento);
rg = new String(rrg);
tel = new String(rtel);
cel = new String(rcel);
rua = new String(rrua);
complemento = new String(rcomplemento);
numero = new String(rnumero);
bairro = new String(rbairro);
cidade = new String(rcidade);
cep = new String(rcep);
uf = new String(ruf);
email = new String(remail);
limite = new String(rlimite);
obs = new String(robs);
System.out.println(nome);
}
}
} catch (Exception erro) {
System.out.println("Erro de processamento do documento XML " + erro.getMessage());
}
}
}