Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

edsonantolini

Ler Arquivo XML da NF-e

Recommended Posts

Boa tarde, a todos.

 

Não consigo ler arquivo xml da NF-e, arquivo é gerando pelo sistema de nota.

 

o Problema esta em uma linha do arquivo xml. Segue o codigo abaixo!

<NFe xmlns="http-~~-//www.portalfiscal.inf.br/nfe">

Quando retiro essa tinha do codigo, consigo ler e traser todos as informações que desejo!

 

Segue uma parte do arquivo xml...

<?xml version="1.0" encoding="UTF-8"?>
<NFe xmlns="http-~~-//www.portalfiscal.inf.br/nfe">
<infNFe versao="1.10" Id="NFe35100859261388000399550010000166760012968800">
<ide>
<cUF>35</cUF>
<cNF>001296880</cNF>
<natOp>VENDA</natOp>
<indPag>1</indPag>
<mod>55</mod>
<serie>1</serie>
<nNF>16676</nNF>
<dEmi>2010-08-03</dEmi>
<dSaiEnt>2010-08-03</dSaiEnt>
<tpNF>1</tpNF>
<cMunFG>3529401</cMunFG>
<tpImp>1</tpImp>
<tpEmis>1</tpEmis>
<cDV>0</cDV>
<tpAmb>1</tpAmb>
<finNFe>1</finNFe>
<procEmi>0</procEmi>
<verProc>1.10</verProc>
</ide>
</infNFe>
</NFe>

 

Codigo que faço a leitura do xml

 

$xml = simplexml_load_file("NFee.xml");
//aqui em baixo eu coloco so valores do laço ITENS em arrays para que abaixo eu as use para mostrar no site
foreach( $xml  as $item )
{
        $data 			= explode(" ",$item->pubDate);
        $time_stamp[$i] = strtotime("$data[1] $data[2] $data[3]");
        $teste= ($titulo[$i] 	= utf8_decode($item->title));
        $teste1= ($cnf[$i] 	= utf8_decode($item->cNF));
		$cuf[$i] 	= utf8_decode($item->cUF);
        $descricao[$i] 	= utf8_decode($item->description);
        $mp3 			= explode("name=", $item->guid);
        $audio[$i] 		= utf8_decode($mp3[1]);
        
		$i++;
		echo $teste;
		echo $teste1;
}

Resumo:

So consigo ler os dados caso tiro a 2 linha do xml..

 

arquivos simples de xml leio normal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, gostaria de saber se alguém tem um modelo de XML para consultar status do servidor da sefaz no modelo atual...

 

Eu tentei várias vezes mas não da certo, mesmo validando com o xsl.

O xsd valida meu arquivo porém o servidor me diz que o xml está mal formatado.

 

Não sei oque fazer.

 

Grato pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

edsonantolini, tenta assim:

 

<?php

$xml = simplexml_load_file("NFee.xml") or die("Erro ao abrir arquivo.");

//total de registros
$total = count($xml->infNFe->ide);

for($i=0; $i <= $total-1; $i++){

echo $xml->infNFe->ide[$i]->cNF."
";


}

?>

 

 

valeu, te mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

o prblema esta nessa linha (<NFe xmlns="http://www.portalfiscal.inf.br/nfe">)

 

xmlns :seta: XML Namespace

 

Tudo o que você precisa fazer, é registrar o namespace usando SimpleXMLElement::registerXPathNamespace()

 

<?php
$nfe = new SimpleXMLElement( $xml );
$nfe->registerXPathNamespace( null , 'http://www.portalfiscal.inf.br/nfe' );

var_dump( $nfe->infNFe->ide->cUF );
var_dump( $nfe->infNFe->ide->cNF );
var_dump( $nfe->infNFe->ide->natOp );

Compartilhar este post


Link para o post
Compartilhar em outros sites

o prblema esta nessa linha (<NFe xmlns="http://www.portalfiscal.inf.br/nfe">)

 

xmlns :seta: XML Namespace

 

Tudo o que você precisa fazer, é registrar o namespace usando SimpleXMLElement::registerXPathNamespace()

 

<?php
$nfe = new SimpleXMLElement( $xml );
$nfe->registerXPathNamespace( null , 'http://www.portalfiscal.inf.br/nfe' );

var_dump( $nfe->infNFe->ide->cUF );
var_dump( $nfe->infNFe->ide->cNF );
var_dump( $nfe->infNFe->ide->natOp );

 

 

 

 

Olá João,

 

eu tbém estou com o mesmo problema e segui suas recomedações, mas deu este erro:

 

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\wamp\www\webservice\certificado.php:9 Stack trace: #0 C:\wamp\www\webservice\certificado.php(9): SimpleXMLElement->__construct('') #1 {main} thrown in C:\wamp\www\webservice\certificado.php on line 9

 

 

 

Meu cod:

<?php 
$xml = simplexml_load_file("NFe32110353617676000519550020000045680000623445-nfe.xml");


//var_dump($xml);

//print_r($xml);

$nfe = new SimpleXMLElement($xml);
$nfe->registerXPathNamespace(null, 'http://www.portalfiscal.inf.br/nfe');

echo $xml->infNFe->ide->nNF;

?>

 

VLWWWWW!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos.

 

Por acaso alguém conseguiu ler o arquivo XML da NF-e em php?

Estou tentando ler o arquivo e alocar as informações com colunas, mas infelizmente não consegui até agora.

Agradeço a quem ajudar!

 

Att;

Luiz

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.