Foros del Web » Programando para Internet » PHP »

PHP y XML - Ayuda Por favor

Estas en el tema de PHP y XML - Ayuda Por favor en el foro de PHP en Foros del Web. Hola a todos! Tengo un problema, soy bastante nuevo en PHP y en XML y necfesito una rutina que me interprete un archivo XML (tabla) ...
  #1 (permalink)  
Antiguo 15/10/2010, 16:59
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
PHP y XML - Ayuda Por favor

Hola a todos!

Tengo un problema, soy bastante nuevo en PHP y en XML y necfesito una rutina que me interprete un archivo XML (tabla) y la convierta en una tabla HTML con programación PHP, el archivo XML es:

<?xml version="1.0" encoding="ISO-8859-1"?>

Código:
<catalog>

    <category>
        
     <name>Categoria 1</name>

    <note>
        <to>Tove</to>
        <from>Jani</from>
        <heading>Reminder</heading>
        <body>Don't forget me this weekend!</body>
    </note>

    <note>
        <to>Ale</to>
        <from>Kary</from>
        <heading>Recordatorio</heading>
        <body>No te olvides este fin de semana!</body>
    </note>

    </category>

    <category>

     <name>Categoria 2</name>

    <note>
        <to>PC</to>
        <from>Pentium II</from>
        <heading>Windows XP</heading>
        <body>Hermosa Pc con muchas características!</body>
    </note>

    <note>
        <to>Mac</to>
        <from>iMac</from>
        <heading>Leopard X</heading>
        <body>Hermosa Mac!</body>
    </note>
    </category>

</catalog>
El resultado de correr la rutina sería una tabla como la siguiente:


Código:
name    to    from    heading    body
Categoria 1    Tove    Jani    Reminder    Don't forget me this weekend!
Categoria 1    Ale    Kary    Recordatorio    No te olvides este fin de semana!
Categoria 2    PC    Pentium II    Windows XP    Hermosa Pc con muchas características!
Categoria 2    Mac    iMac    Leopard X    Hermosa Mac!
Como pueden ver existen 5 columnas (name, to, from , heading, body) y cuatro filas. El documento puede llegar a tener más o menos columnas (campos), es decir la rutina debería automáticamente armar la tabla a partir del xml colocando las columnas y filas correspondientes.

Me dijeron que debería ser una rutina "recursiva" puede ser? Alguien podría decirme donde puedo encontrar una rutina que me haga esto o alguien tiene una??

Muchas gracias y saludos a todos
  #2 (permalink)  
Antiguo 15/10/2010, 17:59
 
Fecha de Ingreso: marzo-2009
Mensajes: 65
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: PHP y XML - Ayuda Por favor

necesitas esto http://mx2.php.net/manual/en/book.simplexml.php y un ciclo... :P no tengo mucho tiempo por eso solo te indico el camino.. suerte
  #3 (permalink)  
Antiguo 15/10/2010, 18:08
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: PHP y XML - Ayuda Por favor

Hola
bueno, adicional a lo que te dijeron, en sintesis lo que necesitas
es ir dibujando el xml dinámicamente

así el asunto, se necesita poner el código que se repite
(los tags category) en un while que recorra los datos de la bd
para que vaya dibujando cada elemento del xml

y previamente, tienes que agregar headers al documento
php para que el navegador lo interprete como un xml

es decir, algo así

Código PHP:
//header
header();
//inicio xml
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?><catalog>';
//while bd
while(){
//dentro cada tag
$xml .= '     <name>$valor</name> ';
//por cada idioma
$xml .='
 <note>         <to>$valor </to>         <from>$valor </from>         <heading>$valor </heading>         <body>$valor </body>     </note> ';
}
y así, cuando se entre a la url del archivo php por el navegador,
en realidad se verá un documento xml

espero te sirva la idea
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: favor, 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 13:04.