0
I am looking for values of an XML, which has the structure below:
<?xml version="1.0" encoding="UTF-8"?>
-
<retorno>
<status_processamento>3</status_processamento>
<status>OK</status>
-
<nota_fiscal>
<id>711259213</id>
<tipo_nota>N</tipo_nota>
<natureza_operacao>Venda de mercadoria à não contribuinte E-commerce</natureza_operacao>
<regime_tributario>3</regime_tributario>
<finalidade>1</finalidade>
<serie>1</serie>
<numero>000129</numero>
<numero_ecommerce>366</numero_ecommerce>
<data_emissao>03/03/2021</data_emissao>
<data_saida>03/03/2021</data_saida>
<hora_saida>10:46</hora_saida>
+
<cliente>+
<endereco_entrega>-
<itens>-
<item>
<id_produto>645000833</id_produto>
<codigo>7896306612831</codigo>
<descricao>Trento Avelã 32g</descricao>
<unidade>Un</unidade>
<ncm>1905.32.00</ncm>
<quantidade>16.00</quantidade>
<valor_unitario>1.81</valor_unitario>
<valor_total>28.96</valor_total>
<cfop>6108</cfop>
<natureza>Venda de mercadoria à não contribuinte E-commerce</natureza>
</item>
-
<item>
<id_produto>645000958</id_produto>
<codigo>7896306612824</codigo>
<descricao>Trento Creme 32g</descricao>
<unidade>Un</unidade>
<ncm>1905.32.00</ncm>
<quantidade>16.00</quantidade>
<valor_unitario>1.81</valor_unitario>
<valor_total>28.96</valor_total>
<cfop>6108</cfop>
<natureza>Venda de mercadoria à não contribuinte E-commerce</natureza>
</item>
-
<item>
<id_produto>645000974</id_produto>
<codigo>7896306618420</codigo>
<descricao>Trento Massimo Chocolate 30g</descricao>
<unidade>Un</unidade>
<ncm>1905.32.00</ncm>
<quantidade>1.00</quantidade>
<valor_unitario>0.01</valor_unitario>
<valor_total>0.01</valor_total>
<cfop>6108</cfop>
<natureza>Venda de mercadoria à não contribuinte E-commerce</natureza>
</item>
-
<item>
<id_produto>645000968</id_produto>
<codigo>7896306619458</codigo>
<descricao>Trento Massimo Branco Com Cookies 30g</descricao>
<unidade>Un</unidade>
<ncm>1905.32.00</ncm>
<quantidade>1.00</quantidade>
<valor_unitario>0.01</valor_unitario>
<valor_total>0.01</valor_total>
<cfop>6108</cfop>
<natureza>Venda de mercadoria à não contribuinte E-commerce</natureza>
</item>
-
<item>
<id_produto>645000989</id_produto>
<codigo>7896306621147</codigo>
<descricao>Trento Massimo Dark 30g</descricao>
<unidade>Un</unidade>
<ncm>1905.32.00</ncm>
<quantidade>1.00</quantidade>
<valor_unitario>0.01</valor_unitario>
<valor_total>0.01</valor_total>
<cfop>6108</cfop>
<natureza>Venda de mercadoria à não contribuinte E-commerce</natureza>
</item>
</itens>
<base_icms>81.54</base_icms>
<valor_icms>9.78</valor_icms>
<base_icms_st>0.00</base_icms_st>
<valor_icms_st>0.00</valor_icms_st>
<valor_servicos>0.00</valor_servicos>
<valor_produtos>57.95</valor_produtos>
<valor_frete>23.59</valor_frete>
<valor_seguro>0.00</valor_seguro>
<valor_outras>0.00</valor_outras>
<valor_ipi>0.00</valor_ipi>
<valor_issqn>0.00</valor_issqn>
<valor_nota>81.54</valor_nota>
<valor_desconto>0.00</valor_desconto>
<valor_faturado>81.54</valor_faturado>
<frete_por_conta>D</frete_por_conta>
-
<transportador>
<nome>EMPRESA BRASILEIRA DE CORREIOS E TELEGRAFOS</nome>
<cpf_cnpj>34.028.316/8369-29</cpf_cnpj>
<ie/>
<endereco/>
<cidade/>
<uf>ES</uf>
</transportador>
<placa/>
<uf_placa/>
<quantidade_volumes>1</quantidade_volumes>
<especie_volumes>Cx</especie_volumes>
<marca_volumes/>
<numero_volumes/>
<peso_bruto>1.40</peso_bruto>
<peso_liquido>1.11</peso_liquido>
-
<forma_envio>
<id>600363361</id>
<descricao>Correios</descricao>
</forma_envio>
-
<forma_frete>
<id>658562917</id>
<descricao>PAC CONTRATO AG (03298)</descricao>
</forma_frete>
<codigo_rastreamento>QD820063704BR</codigo_rastreamento>
<url_rastreamento>https://www2.correios.com.br/sistemas/rastreamento</url_rastreamento>
<condicao_pagamento>30</condicao_pagamento>
<forma_pagamento>credito</forma_pagamento>
<meio_pagamento/>
-
<parcelas>-
<parcela>
<dias>30</dias>
<data>02/04/2021</data>
<valor>81.54</valor>
<obs/>
<forma_pagamento>credito</forma_pagamento>
<meio_pagamento/>
</parcela>
</parcelas>
<id_venda>711044654</id_venda>
<id_vendedor>0</id_vendedor>
<nome_vendedor/>
<situacao>7</situacao>
<descricao_situacao>Emitida DANFE</descricao_situacao>
<obs>Nº Pedido: 137 EC 87/2005 - Total ICMS UF Destino: 4,48 - Total FCP: 0,00. Tributos aproximados: R$ 2,44 (Federal) e R$ 4,06 (Estadual). Fonte: IBPT 8F6CA7</obs>
<chave_acesso>32210389425888001009550010000001291112592136</chave_acesso>
</nota_fiscal>
</retorno>
The Customer and Delivery Address tag, for example, I can redeem the data normally with the command below:
$filename = 'link do xml';
$doc = new DOMDocument();
$doc->load( $filename);
$records = $doc->getElementsByTagName( "nota_fiscal" );
foreach( $records as $record ) { // NIVEL NF
$xpathPesquisa = new DOMXpath($doc);
$nome_cli = $xpathPesquisa->query('cliente/nome', $record)->item(0)->nodeValue;
The problem I’m facing is when I read what’s below the tag Items -> Item, because the tag Item is variable (can have any amount in each NF). With the command below only rescued the first item:
##
## VAI ABRIR O XML SEGUINTE USANDO O ID DE PARAMETRO ##
##
$filename_tax = 'meulink&id='.$id.'&formato=XML';
$doc_tax = new DOMDocument();
$doc_tax->load( $filename_tax);
$records_tax = $doc_tax->getElementsByTagName( "item" );
foreach( $records_tax as $record_tax ) { // NIVEL ITEM
## parse the ID
$id_produto = $record_tax->getElementsByTagName( "id_produto" );
$id_produto = $id_produto->item(0)->nodeValue;
} //FOREACH ITEM
I tried using xPath, but am getting invalid structure error.
Post xml as text, it is easier for those who help ;)
– Marcos Xavier
@Marcosxavier my bad, already put in text
– Diego