Saludos gente del foro, tengo el siguiente codigo que me funciona a la perfeccion para lo que yo quiero:
Código PHP:
<?php
$xml = file_get_contents("facturas/tmp/00100001010000006754_A.xml");
$DOM = new DOMDocument('1.0','utf-8');
$DOM->loadXML($xml);
$factura_xml = $DOM->getElementsByTagName('FacturaElectronica');
foreach($factura_xml as $factura){
$idElem = $factura->getElementsByTagName('Emisor');
$nombre = $factura->getElementsByTagName('NombreComercial')->item(0)->nodeValue;
foreach($idElem as $hijo){
$ced = $hijo->getElementsByTagName('Identificacion');
foreach($ced as $cedulita){
$cedul = $cedulita->getElementsByTagName('Numero')->item(0)->nodeValue;
}
}
}
echo $nombre." / ".$cedul;
?>
Lo que hago con el es sacar el nombre y la identificacion del emisor de este xml
Código XML:
Ver original<?xml version="1.0" encoding="utf-8"?>
<FacturaElectronica xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica" xsi:schemaLocation="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Clave>50601111800310106021400100001010000006754100616887</Clave>
<NumeroConsecutivo>00100001010000006754</NumeroConsecutivo>
<FechaEmision>2018-11-01T00:00:00</FechaEmision>
<Emisor>
<Nombre>Grupo El Electrico S.A.</Nombre>
<Identificacion>
<Tipo>02</Tipo>
<Numero>3101060214</Numero>
</Identificacion>
<NombreComercial>Grupo El Electrico S.A.</NombreComercial>
<Ubicacion>
<Provincia>1</Provincia>
<Canton>01</Canton>
<Distrito>06</Distrito>
<Barrio>16</Barrio>
<OtrasSenas>San Jose,San Jose,San Francisco,Los Sauces</OtrasSenas>
</Ubicacion>
<Telefono>
<CodigoPais>506</CodigoPais>
<NumTelefono>40551755</NumTelefono>
</Telefono>
<Fax>
<CodigoPais>506</CodigoPais>
<NumTelefono>26657676</NumTelefono>
</Fax>
</Emisor>
</FacturaElectronica>
Como dije antes el codigo me funciona, sin embargo lo que busco es mejorar ese codigo, quizas hacerlo mas corto o mas optimizado, por eso les pregunto a ustedes para que me den sus respectivas mejoras y las explicaciones de ellas.
gracias