Foros del Web » Programando para Internet » PHP »

Recorrer nodos de un xml con php DOM

Estas en el tema de Recorrer nodos de un xml con php DOM en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/11/2018, 17:56
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 449
Antigüedad: 6 años, 2 meses
Puntos: 3
Pregunta Recorrer nodos de un xml con php DOM

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
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <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">
  3.   <Clave>50601111800310106021400100001010000006754100616887</Clave>
  4.   <NumeroConsecutivo>00100001010000006754</NumeroConsecutivo>
  5.   <FechaEmision>2018-11-01T00:00:00</FechaEmision>
  6.   <Emisor>
  7.     <Nombre>Grupo El Electrico S.A.</Nombre>
  8.     <Identificacion>
  9.       <Tipo>02</Tipo>
  10.       <Numero>3101060214</Numero>
  11.     </Identificacion>
  12.     <NombreComercial>Grupo El Electrico S.A.</NombreComercial>
  13.     <Ubicacion>
  14.       <Provincia>1</Provincia>
  15.       <Canton>01</Canton>
  16.       <Distrito>06</Distrito>
  17.       <Barrio>16</Barrio>
  18.       <OtrasSenas>San Jose,San Jose,San Francisco,Los Sauces</OtrasSenas>
  19.     </Ubicacion>
  20.     <Telefono>
  21.       <CodigoPais>506</CodigoPais>
  22.       <NumTelefono>40551755</NumTelefono>
  23.     </Telefono>
  24.     <Fax>
  25.       <CodigoPais>506</CodigoPais>
  26.       <NumTelefono>26657676</NumTelefono>
  27.     </Fax>
  28.     <CorreoElectronico>[email protected]</CorreoElectronico>
  29.   </Emisor>
  30. </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



La zona horaria es GMT -6. Ahora son las 05:58.