Tema: xml y php
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/09/2011, 11:47
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 7 meses
Puntos: 793
Respuesta: xml y php

Por favor no me respondas por mensaje privado para que los demás aprendan...

Tu duda es ¿Cómo recorrer todos los conceptos de tu XML?

necesitas usar un bucle para cada concepto y otro bucle para cada atributo:

Código PHP:
Ver original
  1. <?php
  2. // TU ARCHIVO XML
  3. $xml = <<<XML
  4. <?xml version="1.0" encoding="UTF-8"?>
  5. <direccion:ruta xmlns:direccion="http://www.w3.org/2001/XMLSchema-instance">
  6. <direccion:Cliente nombre="PRUEBA PRUEBA PRUEBA" rfc="AAAA610917AAA">
  7. <direccion:DomicilioFiscal codigoPostal="12300" localidad="CIUDAD DE MEXICO" noExterior="54" estado="DISTRITO FEDERAL" pais="MEXICO" municipio="MILPA ALTA" colonia="SAN SALVADOR CUAUHTENCO" calle="CEDROS"/>
  8. </direccion:Cliente>
  9. <direccion:Conceptos>
  10. <direccion:Concepto importe="4990.00" valorUnitario="4990.00" cantidad="1" descripcion="BLACKBERRY STORM" unidad="pz" noIdentificacion="BB9550"/>
  11. <direccion:Concepto importe="1300.00" valorUnitario="1300.00" cantidad="1" descripcion="MONITOR 17 PULGADAS" unidad="pz" noIdentificacion="MT17"/>
  12. </direccion:Conceptos>
  13. </direccion:ruta>
  14. XML;

Código PHP:
Ver original
  1. $doc = new DOMDocument();
  2. $doc->loadXML($xml);
  3. $conceptos = $doc->getElementsByTagNameNS($doc->lookupNamespaceUri('direccion'), 'Concepto');
  4.  
  5. echo '<h3>Conceptos</h3>';
  6.  
  7. for ($i=0; $i<$conceptos->length; $i++) {
  8.     foreach ($conceptos->item($i)->attributes as $atributo) {
  9.         echo $atributo->name . ' ' . $atributo->nodeValue . '<br />';
  10.     }
  11.     echo '<hr />';
  12. }

tenías mal definido el namespace

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

definiste el namespace xsi y estás usando el namespace direccion lo cambie en el ejemplo. Espero que ya entiendas mejor el tema. Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP