Ir para conteúdo
Fórum Script Brasil
  • 0

Como Pegar um ID com PHP


GabrieldaBahia

Pergunta

Boa Noite Devs, Estou rodando um script que pega alguns dados de arquivos XML, um desses dados e um valor de um ID que vem em uma tag principal do XML, não estou conseguindo percorrer essa tag ate pegar o valor desse ID alguém sabe ?  Basicamente estou usando o seguinte metodo abaixo pra consegui fazer a leitura dos XML. Segue também modelo do XML o ID que preciso pegar o valor e colocar em uma Variel e o da tag infNfe...

<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe versao="4.00" Id="NFe29190510533036000194650010000004491000004492">
<?php

error_reporting(0);
ini_set(“display_errors”, 0 );

//Instanciando o OBJ
$xml = new DOMdocument();

//Pegando o TMP do FORM
$arquivo = $_FILES['entXML']['tmp_name'];

//Total de todos os XML
$vTotal = 0;
$nf =' ';
$motivo =' ';

    //Total de todos os XML
      $totArquivos = 0;
    
      $arquivos = $arquivo;


//Navegando no Nodes(Nós)
foreach( $arquivos as$arquivos){

 //Carregando o XML
 $xml ->load($arquivos) or die("Erro ao carregar arquivo XML");
  //Entra dentro do NÓ pai do XML
  $arquivos = $xml->getElementsByTagName( "nfeProc" );

    //Pega Nome
      $nomes = $xml->getElementsByTagName( "xNome" );
      $nome = $nomes->item(0)->nodeValue;
    //Pega CNPJ
      $cnpjS = $xml->getElementsByTagName( "CNPJ" );
      $cnpj = $cnpjS->item(0)->nodeValue;

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 1

Tenta assim

<?php
// Resto do código ...

$arquivo = $_FILES['entXML']['tmp_name']; // Já que você está lendo apenas um arquivo não precisa de foreach

// Resto do código ...

$xml->load($arquivo) or die(" ");

// Resto do código ...

$chave = $xml->getElementsByTagName('nfeProc')->getAttribute('Id');

var_dump($chave);

 

Link para o comentário
Compartilhar em outros sites

  • 0
<?php

error_reporting(0);
ini_set(“display_errors”, 0 );

//Instanciando o OBJ
$xml = new DOMdocument();

//Pegando o TMP do FORM
$arquivo = $_FILES['entXML']['tmp_name'];

//Total de todos os XML
$vTotal = 0;
$nf =' ';
$motivo =' ';

    //Total de todos os XML
      $totArquivos = 0;
    
      $arquivos = $arquivo;


//Navegando no Nodes(Nós)
foreach( $arquivos as$arquivos){

 //Carregando o XML
 $xml ->load($arquivos) or die(" ");
  //Entra dentro do NÓ pai do XML
  $arquivos = $xml->getElementsByTagName( "nfeProc" );

    //Pega Nome
      $nomes = $xml->getElementsByTagName( "xNome" );
      $nome = $nomes->item(0)->nodeValue;
    //Pega CNPJ
      $cnpjS = $xml->getElementsByTagName( "CNPJ" );
      $cnpj = $cnpjS->item(0)->nodeValue;

      $chave = $xml->nfeProc->infNFe['Id'];

 

Agora, GabrieldaBahia disse:

<?php

error_reporting(0);
ini_set(“display_errors”, 0 );

//Instanciando o OBJ
$xml = new DOMdocument();

//Pegando o TMP do FORM
$arquivo = $_FILES['entXML']['tmp_name'];

//Total de todos os XML
$vTotal = 0;
$nf =' ';
$motivo =' ';

    //Total de todos os XML
      $totArquivos = 0;
    
      $arquivos = $arquivo;


//Navegando no Nodes(Nós)
foreach( $arquivos as$arquivos){

 //Carregando o XML
 $xml ->load($arquivos) or die(" ");
  //Entra dentro do NÓ pai do XML
  $arquivos = $xml->getElementsByTagName( "nfeProc" );

    //Pega Nome
      $nomes = $xml->getElementsByTagName( "xNome" );
      $nome = $nomes->item(0)->nodeValue;
    //Pega CNPJ
      $cnpjS = $xml->getElementsByTagName( "CNPJ" );
      $cnpj = $cnpjS->item(0)->nodeValue;

      $chave = $xml->nfeProc->infNFe['Id'];

Desse modo como está na ultima linha que tentei acessar o valor do Id

 

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 08/07/2019 em 11:12, Leonardo Persan disse:

Tenta assim


<?php
// Resto do código ...

$arquivo = $_FILES['entXML']['tmp_name']; // Já que você está lendo apenas um arquivo não precisa de foreach

// Resto do código ...

$xml->load($arquivo) or die(" ");

// Resto do código ...

$chave = $xml->getElementsByTagName('nfeProc')->getAttribute('Id');

var_dump($chave);

 

 

Boa tarde leonardo eu estou lendo varios arquivos com o codigo que você citou não tem a saida dos dados, quando colocando o codigo dentro do Foreach os dados não são impressos na tela, na verdade nada acontece. 

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...