Foros del Web » Programando para Internet » PHP »

Generar XML de un Directorio con PHP

Estas en el tema de Generar XML de un Directorio con PHP en el foro de PHP en Foros del Web. Amigos: Hace dias que estoy con este problema, a ver si me ayudar, les cuento: Necesito generar un archivo XML con la estructura de los ...
  #1 (permalink)  
Antiguo 01/05/2010, 18:46
 
Fecha de Ingreso: mayo-2007
Ubicación: Chile
Mensajes: 42
Antigüedad: 16 años, 11 meses
Puntos: 1
Exclamación Generar XML de un Directorio con PHP

Amigos:

Hace dias que estoy con este problema, a ver si me ayudar, les cuento:

Necesito generar un archivo XML con la estructura de los directorios y archivos de una carpeta en especial, el XML lo leere despues con Flash Builder 4.

Lo que quiero es una estructura de esta forma:

Código XML:
Ver original
  1. <folder label="C:">
  2.             <folder label="How To Rule The World">
  3.                 <pdf label="HowToRuleTheWorld.pdf" />
  4.                 <folder label="Flex.org Plans">
  5.                     <pdf label="TheFlexMarketplace.pdf" />
  6.                     <sql label="database.sql" />
  7.                     <cmf label="core.cfm" />
  8.                     <folder label="Flex Template">
  9.                         <swf label="view.swf"/>
  10.                         <js label="history.js"/>
  11.                         <js label="AC_OETags.js"/>
  12.                     </folder>
  13.                 </folder>  
  14.                 <folder label="FlexTV Plans">
  15.                     <pdf label="Epsode1to5.pdf" />    
  16.                 </folder>
  17.             </folder>  
  18.         </folder>

o también de la forma:

Código XML:
Ver original
  1. <folder label="C:">
  2.             <folder label="How To Rule The World">
  3.                 <archivo label="HowToRuleTheWorld.pdf" />
  4.                 <folder label="Flex.org Plans">
  5.                     <archivo label="TheFlexMarketplace.pdf" />
  6.                     <archivo label="database.sql" />
  7.                     <archivo label="core.cfm" />
  8.                     <folder label="Flex Template">
  9.                         <archivo label="view.swf"/>
  10.                         <archivo label="history.js"/>
  11.                         <archivo label="AC_OETags.js"/>
  12.                     </folder>
  13.                 </folder>  
  14.                 <folder label="FlexTV Plans">
  15.                     <archivo label="Epsode1to5.pdf" />    
  16.                 </folder>
  17.             </folder>  
  18.         </folder>

He buscado en varios idiomas y no doy con la respuesta, espero que me ayuden y me orienten =)


Saludos y Gracias
  #2 (permalink)  
Antiguo 01/05/2010, 19:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Generar XML de un Directorio con PHP

bueno, en realidad es mas simple... y no importa el idioma.. (:

solo debes aprender a ciclar directorios, y luego ir generando el XML adecuado...

por favor, lee en el manual de PHP al respecto: funciones del sistema de archivos
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/05/2010, 20:13
 
Fecha de Ingreso: mayo-2007
Ubicación: Chile
Mensajes: 42
Antigüedad: 16 años, 11 meses
Puntos: 1
De acuerdo Respuesta: Generar XML de un Directorio con PHP

Exactamente eso es lo que necesito ciclar dentro de los directorios e ir viendo los archivos, leeré la documentación de php.net

Cualquier novedad la comentaré.

Si tienen algun script de ejemplo o de ayuda, será bienvenido

gracias pateketrueke
  #4 (permalink)  
Antiguo 01/05/2010, 21:25
 
Fecha de Ingreso: mayo-2007
Ubicación: Chile
Mensajes: 42
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Generar XML de un Directorio con PHP

Encontre este script de ejemplo:

Código PHP:
Ver original
  1. <?php
  2.    $dir = "./";
  3.    
  4.    echo "<XML encoding='UTF-8' standalone='yes' version='1.0'>\n";
  5.    echo "  <folder>\n";
  6.    
  7.    if (is_dir($dir))
  8.    {
  9.        if ($gd = opendir($dir))
  10.       {
  11.            while (($archivo = readdir($gd)) !== false)
  12.          {
  13.             if ($archivo != "." & $archivo != ".." & $archivo != "list.php")
  14.             {
  15.                if (is_dir($archivo))
  16.                {
  17.                      echo "    <folder>$archivo</folder>\n";
  18.                }
  19.                else
  20.                {
  21.                      echo "    <file>$archivo</file>\n";
  22.                }
  23.             }
  24.            }
  25.            closedir($gd);
  26.        }
  27.    }
  28.    
  29.    echo "  </folder>\n";
  30.    echo "</XML>\n";
  31. ?>

El unico problema es que a veces no me reconoce un directorio como tal y me lo pasa como archivo y segundo, que no me genera el xml con los subdirectorios, es decir no pasa a un nivel inferior en carpetas

SOS

Gracias
  #5 (permalink)  
Antiguo 02/05/2010, 02:07
 
Fecha de Ingreso: mayo-2007
Ubicación: Chile
Mensajes: 42
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Generar XML de un Directorio con PHP

amigos:

Estoy cerca o creo estarlo, encontre un buen script que es de ayuda:

http://www.weberdev.com/get_example-4472.html

Mi problema es el siguiente:

El archivo xml generado tiene la siguiente estructura:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Root>
  3.     <distribuidos>
  4.         <jdni>
  5.             <archivo>1.pdf</archivo>
  6.         </jdni>
  7.     <archivo>1.pdf</archivo>
  8.     </distribuidos>
  9.     <sia>
  10.         <archivo>1.pdf</archivo>
  11.     </sia>
  12.     <sig>
  13.         <archivo>1.pdf</archivo>
  14.     </sig>
  15. </Root>

Lo que yo necesito es:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Root>
  3.     <distribuidos>
  4.         <jdni>
  5.             <archivo label="1.pdf"/>
  6.         </jdni>
  7.     <archivo label="1.pdf"/>
  8.     </distribuidos>
  9.     <sia>
  10.         <archivo label="1.pdf"/>
  11.     </sia>
  12.     <sig>
  13.         <archivo label="1.pdf"/>
  14.     </sig>
  15. </Root>

Aqui es donde he echo alguna modificación al codigo, para intentar conseguir ese modelo:

Código PHP:
Ver original
  1. $node = $this->doc->createElement($newKey);
  2.                         if (is_array($val)){
  3.                                 $this->addArray($arr[$key], $node, $key);
  4.                         }else{
  5.                    /*
  6.                 $nodeText = $this->doc->createTextNode($val);
  7.                                 $node->appendChild($nodeText);
  8.                    */
  9.                                 $nodeText = $this->doc->createAttribute('label');
  10.                                 $node->appendChild($nodeText);
  11.    
  12.                         }
  13.                         $n->appendChild($node);

Lo que necesito es pasar el valor de $val, como valor del atributo label, en comentarios esta el codigo original, y en el link del inicio estan los archivos para descargar el original completo.


Necesito su ayuda amigos.

SOS

Saludos

Etiquetas: directorio, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:03.