Foros del Web » Programando para Internet » PHP »

Creación de XML con PHP (Problema con bucle)

Estas en el tema de Creación de XML con PHP (Problema con bucle) en el foro de PHP en Foros del Web. Hola de nuevo. Si bien la creación de un XML a partir de un PHP me funciona perfectamente tengo un problema con un bucle (arrastro ...
  #1 (permalink)  
Antiguo 03/05/2008, 00:28
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Creación de XML con PHP (Problema con bucle)

Hola de nuevo.
Si bien la creación de un XML a partir de un PHP me funciona perfectamente tengo un problema con un bucle (arrastro esto desde la programación con Delphi y C++ )
La función de mi código: crear un XML a partir de los archivos en un directorio para generar una playlist de un reproductor en flash. Suponiendo que tenga 3 archivos en mi directorio:

El XML al que debo llegar:
Código PHP:
<?xml version="1.0" encoding="iso-8859-1"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
    <trackList>
        <track>
            <annotation>archivo1</annotation>
            <location>*****/***********/archivo1.mp3</location>
    </track>
         
        <track>
            <annotation>archivo2</annotation>
            <location>*****/***********/archivo2.mp3</location>
        </track>

    <track>
            <annotation>archivo3</annotation>
            <location>*****/***********/archivo3.mp3</location>
        </track>   
             
</playlist>
Mi triste (pero humilde) código:

Código PHP:
<?php

$path
="../images/stories/audios/";
$directorio=dir($path);

while (
$archivo $directorio->read())
{
    if (
$archivo!="." && $archivo!="..")
    {
        
$buffer='<?xml version="1.0" encoding="utf-8"?>
                <playlist version="1" xmlns="http://xspf.org/ns/0/">
                    <trackList>
                        <track>
                            <annotation>'
.$archivo.'</annotation>
                            <location>*****/***********/'
.$archivo.'</location>
                        </track>
                </playlist>'
;
    }
}
       
$name_file="archivo.xml";
       
$file=fopen($name_file,"w+");
       
fwrite ($file,$buffer);
       
fclose($file);
$directorio->close();
?>
El resultado :

Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
    <track>
        <annotation>archivo3.mp3</annotation>
        <location>*****/***********/archivo3.mp3</location>
    </track>
</playlist>
Claro está que solo guarda la variable $archivo en su último valor asignado, pero sinceramente no puedo resolver el problema ya que es la primera vez que trabajo con XML, quien sepa decirme como resolver este ciclo será eternamente agradecido por un novato.
Gracias muchas.
  #2 (permalink)  
Antiguo 03/05/2008, 02:07
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años, 6 meses
Puntos: 5
Re: Creación de XML con PHP (Problema con bucle)

Hi !

Prueba asi :
Código PHP:
<?php


$xml 
'<?xml version="1.0" encoding="utf-8"?>'."\n";
$xml.= '<playlist version="1" xmlns="http://xspf.org/ns/0/">'."\n";
$xml.= '<trackList>';

$path="../images/stories/audios/"
$directorio=dir($path);

$name_file="archivo.xml";
$file=fopen($name_file,"w+");

while (
$archivo $directorio->read())
{
    if (
$archivo!="." && $archivo!="..")
    {
        
$xml.='
    <track>
    <annotation>'
.$archivo.'</annotation>
    <location>*****/***********/'
.$archivo.'</location>
    </track>'
;
        
    }
}
$xml.= "\n".'</trackList>'."\n";
$xml.= '</playlist>';

fwrite ($file$xml);
fclose($file); 
$directorio->close();
?>
Espero te sea de ayuda :)

-ByE-

Última edición por Proguri; 03/05/2008 a las 02:25 Razón: Error en el codigo brindado. Solucionado
  #3 (permalink)  
Antiguo 03/05/2008, 10:19
Ktulu
Invitado
 
Mensajes: n/a
Puntos:
Re: Creación de XML con PHP (Problema con bucle)

PER - FEC - TO
Mi eterno agradecimiento
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 12:18.