Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou importando os dados de uma NFe para o mysql.
A questão é que as xmls das NFe geram uma tag pai para cada produto, e as tags são sempre as mesmas:
<det>
<prod>
<xProd>Nome do produto</xProd>
<vProd>Valor do produto</xProd>
</prod>
</det>
<det>...</det>
<det>...</det>
<det>...</det>
<det>...</det> Eu preciso ler o conteúdo de cada tag "det", porém só consigo ler a primeira tag.
código:
<?php
foreach (glob($dir.'*.xml') as $obj) {
ini_set('default_charset', 'UTF-8');
$xml = simplexml_load_file($obj);
$produto = $xml->NFe->infNFe->det->prod->xProd;
$valor= $xml->NFe->infNFe->det->prod->vProd;
}
?>
Resolvi com este método:
<?php
function dom($dir){
foreach (glob($dir.'*.xml') as $obj) {
$filename = $obj;
$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->load( $filename );
$products = $DOMDocument->getElementsByTagName( 'prod' );
foreach( $products as $product )
{
printf( '
<strong>Produto:</strong> %s<br/>
<strong>Valor:</strong> %01.2f<br/>',
$product->getElementsByTagName( 'xProd' )->item( 0 )->nodeValue,
$product->getElementsByTagName( 'vUnCom' )->item( 0 )->nodeValue
);
}
}
}
dom('../../arquivos/xml/');
?>Carregando comentários...