Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/09/2011, 10:59
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: Parsear xml con DomDocument

Las expresiones regulares no creo que sean la mejor forma de hacerlo, teniendo métodos para esto. Un par de ejemplos "básicos".

DOMDocument

Código PHP:
Ver original
  1. <?php
  2. $xml = file_get_contents('prueba.xml');
  3. $doc = new DOMDocument();
  4. $doc->loadXML($xml);
  5. $dom_pa = new DOMXPath($doc);
  6. $dom_pa->registerNamespace('d', $doc->lookupNamespaceUri('domain'));
  7. $resultado = $dom_pa->query('//d:contact');
  8. echo $contacto1 = $resultado->item(0)->nodeValue . '<br />';
  9. echo $contacto2 = $resultado->item(1)->nodeValue;

SimpleXMLElement

Código PHP:
Ver original
  1. $xml = file_get_contents('prueba.xml');
  2. $sp = new SimpleXMLElement($xml);
  3. $ns = $sp->getNamespaces(true);
  4. $sp->registerXPathNamespace('d', $ns['domain']);
  5. $contacto = $sp->xpath('//d:contact');
  6. echo $contacto[0] . '<br />';
  7. echo $contacto[1];

En el caso de querer los atributos usas getAttribute con DOMDocument o attribute con SimpleXML. 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