Una excelente función para leer XML desde PHP

Vía php.net, encontré una función muy practica para leer convertir desde PHP un archivo XML en una arreglo asociativo.

Para poder usarlo se debe compilar la extención XML, ya que usa la clase XMLReader,  aunque la mayoria de los servidores ya vienen con la extención instalada.

Esta es la función:

    function xml2assoc($xml) {
      $assoc = null;
      while($xml->read()){
        switch ($xml->nodeType) {
          case XMLReader::END_ELEMENT: return $assoc;
          case XMLReader::ELEMENT:
            $assoc[$xml->name] = array('value' => $xml->isEmptyElement ? '' : xml2assoc($xml));
            if($xml->hasAttributes){
              $el =& $assoc[$xml->name][count($assoc[$xml->name]) - 1];
              while($xml->moveToNextAttribute()) $el['attributes'][$xml->name] = $xml->value;
            }
            break;
          case XMLReader::TEXT:
          case XMLReader::CDATA: $assoc .= $xml->value;
        }
      }
      return $assoc;
    }

Y luego solo se crea el objeto y se pasa como parámetro a la función:

$xml = new XMLReader();
$xml->open([XML file]);
$assoc = xml2assoc($xml);
$xml->;close();

Muy util.

Anuncios

2 comments so far

  1. belial_seed on

    muy buen recurso

  2. Neider on

    No me funciono


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: