Login Registre-se
leitura do arquivo XML  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
welinton

JavaC Membro

Membro desde: 29/01/2013 17:16:09
Mensagens: 14
Offline

boa noite galera ...

sou novo no fórum a gostaria de uma ajuda

tenho meu código que uso o JAX-B para leitura de um arquivo XML que esta em um diretório especifico mas quando chega em determinada linha do código ele pula direta mento para a linha de erro :

a baixo esta o código que estou usando

public static void main(String[] args) throws JAXBException {

String arquivoXML;
arquivoXML = "c:\\xml\\teste.xml";

try {
JAXBContext jaxbContext = JAXBContext.newInstance(Object.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();

File lerNfe = new File(arquivoXML);
ObjectFactory nfe = (ObjectFactory) jaxbUnmarshaller.unmarshal(lerNfe);

System.out.println("lendo o arquivo XML" + nfe);

} catch (Exception ex) {
System.out.println("Error ao ler XML " + ex.getMessage());
}

}

quando ele chega nessa linha
ObjectFactory nfe = (ObjectFactory) jaxbUnmarshaller.unmarshal(lerNfe);
ele pula para o erro alguém poderia me ajudar

desde já agradeço pela atenção
[MSN]
welinton

JavaC Membro

Membro desde: 29/01/2013 17:16:09
Mensagens: 14
Offline

erro e esse:


org.xml.sax.SAXParseException: The markup in the document preceding the root element must be well-formed.
[MSN]
welinton

JavaC Membro

Membro desde: 29/01/2013 17:16:09
Mensagens: 14
Offline

ai galera se alguem precisa esta ai o codigo que ler o XML e pega os dados



public static void main(String argv[]) {

try {

File fXmlFile = new File("C:/xml/53130211082913000110550010000000031000068023.xml";
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);

//optional, but recommended
//read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
doc.getDocumentElement().normalize();

System.out.println("Elemento raiz :" + doc.getDocumentElement().getNodeName());

NodeList nList = doc.getElementsByTagName("nfeProc";

System.out.println("----------------------------";

for (int temp = 0; temp < nList.getLength(); temp++) {

Node nNode = nList.item(temp);

System.out.println("\nCurrent Element :" + nNode.getNodeName());

if (nNode.getNodeType() == Node.ELEMENT_NODE) {

Element eElement = (Element) nNode;

System.out.println("infNFe versao Id Name : " + eElement.getAttribute("versao");
System.out.println("chNFe Name : " + eElement.getElementsByTagName("chNFe".item(0).getTextContent());
System.out.println("cUF Name : " + eElement.getElementsByTagName("cUF".item(0).getTextContent());
System.out.println("cNF Name : " + eElement.getElementsByTagName("cNF".item(0).getTextContent());
System.out.println("dhRecbto Name : " + eElement.getElementsByTagName("dhRecbto".item(0).getTextContent());
// System.out.println("Salary : " + eElement.getElementsByTagName("salary".item(0).getTextContent());;



}
}
} catch (Exception e) {
e.printStackTrace();
}
}


abraço ate a poxima ...
[MSN]
lulukamagaiver

JavaC Membro

Membro desde: 30/05/2013 14:16:08
Mensagens: 14
Offline

welinton wrote:ai galera se alguem precisa esta ai o codigo que ler o XML e pega os dados



public static void main(String argv[]) {

try {

File fXmlFile = new File("C:/xml/53130211082913000110550010000000031000068023.xml";
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);

//optional, but recommended
//read this - http://stackoverflow.com/questions/13786607/normalization-in-dom-parsing-with-java-how-does-it-work
doc.getDocumentElement().normalize();

System.out.println("Elemento raiz :" + doc.getDocumentElement().getNodeName());

NodeList nList = doc.getElementsByTagName("nfeProc";

System.out.println("----------------------------";

for (int temp = 0; temp < nList.getLength(); temp++) {

Node nNode = nList.item(temp);

System.out.println("\nCurrent Element :" + nNode.getNodeName());

if (nNode.getNodeType() == Node.ELEMENT_NODE) {

Element eElement = (Element) nNode;

System.out.println("infNFe versao Id Name : " + eElement.getAttribute("versao");
System.out.println("chNFe Name : " + eElement.getElementsByTagName("chNFe".item(0).getTextContent());
System.out.println("cUF Name : " + eElement.getElementsByTagName("cUF".item(0).getTextContent());
System.out.println("cNF Name : " + eElement.getElementsByTagName("cNF".item(0).getTextContent());
System.out.println("dhRecbto Name : " + eElement.getElementsByTagName("dhRecbto".item(0).getTextContent());
// System.out.println("Salary : " + eElement.getElementsByTagName("salary".item(0).getTextContent());;



}
}
} catch (Exception e) {
e.printStackTrace();
}
}


abraço ate a poxima ...


No caso eu querendo pegar os Itens da Nfe, como seria?
welinton

JavaC Membro

Membro desde: 29/01/2013 17:16:09
Mensagens: 14
Offline

boa noite Mensagem lulukamagaiver

cara para você pegas os itens e só ver as tegs que esta os item

ex:

System.out.println("chNFe Name : " + eElement.getElementsByTagName("chNFe".item(0).getTextContent());

chNFe -> essa e a teg pega essa teg que esta nos itens e vai obter o valor que vc quer ....

qualquer coisa só pergunta ....
[MSN]
lulukamagaiver

JavaC Membro

Membro desde: 30/05/2013 14:16:08
Mensagens: 14
Offline

welinton wrote:boa noite Mensagem lulukamagaiver

cara para você pegas os itens e só ver as tegs que esta os item

ex:

System.out.println("chNFe Name : " + eElement.getElementsByTagName("chNFe".item(0).getTextContent());

chNFe -> essa e a teg pega essa teg que esta nos itens e vai obter o valor que vc quer ....

qualquer coisa só pergunta ....


Amigo, Obrigado por responder, mas num entendi muito bem sua colocação, mas vamos la...
Eu to desenvolvendo um programa que le so dados da XML Nfe e nesse programinha tem uma tabela onde serão contidos os itens e ai minha duvida como pegar essa tag: <det nItem="1"> e jogar os itens na tabela....essa e minha dificuldade.

Aguardo...
welinton

JavaC Membro

Membro desde: 29/01/2013 17:16:09
Mensagens: 14
Offline

boa tarde lulukamagaiver ....

cara assim nesse codigo que coloquei ele você vai escolher o linha do xml que você quer pegar ....

mais alguma duvida me add no skp

welintonneguim2@hotmail.com

assim acho que vo poder te ajudar melhor ....

abraço desculpa a demora ..
[MSN]
lulukamagaiver

JavaC Membro

Membro desde: 30/05/2013 14:16:08
Mensagens: 14
Offline

welinton wrote:boa tarde lulukamagaiver ....

cara assim nesse codigo que coloquei ele você vai escolher o linha do xml que você quer pegar ....

mais alguma duvida me add no skp

welintonneguim2@hotmail.com

assim acho que vo poder te ajudar melhor ....

abraço desculpa a demora ..


Ok, vou te add, mas já consegui fazer o que eu queria e vou postar o codigo aqui pra a galera que tem a mesma dificuldade que a minha. Mas só pra esclarecer o que fiz foi o seguinte, nessa linha de codigo:



no "nfeProc" eu coloquei o "det" e na linha:



coloquei o Atributo do Det ( <det nItem='1'> ) e com a condição IF eu pego todos os itens.

quando eu postar o código você vai entender....Vlz....
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team