Foros del Web » Programando para Internet » PHP »

php y xml

Estas en el tema de php y xml en el foro de PHP en Foros del Web. Hola, tengo un archivo xml de la siguiente forma: Código PHP: < categoria name = "musica" >    < item >       < titulo > Mago de Oz </ titulo ...
  #1 (permalink)  
Antiguo 25/01/2007, 09:03
 
Fecha de Ingreso: septiembre-2005
Mensajes: 70
Antigüedad: 18 años, 7 meses
Puntos: 0
php y xml

Hola, tengo un archivo xml de la siguiente forma:

Código PHP:
<categoria name="musica">
   <
item>
      <
titulo>Mago de Oz</titulo>
      <
url>http://www.magodeoz.com</url>
   
</item>
</
categoria>
<
categoria name="cine">
   <
titulo>Volver</titulo>
   <
url>http://www.volver.es</url>
</categoria
Ahora el problema que tengo es que quiero modificar el archivo y añadir campos nuevos a las etiquetas, por ejemplo añadir en la etiqueta musica un nuevo grupo:

Código PHP:
<titulo>Metallica</titulo>
<
url>http://www.metallica.com</url> 
Lo que busco es:

Código PHP:
<categoria name="musica">
   <
item>
      <
titulo>Mago de Oz</titulo>
      <
url>http://www.magodeoz.com</url>
   
</item>
   <
item>
      <
titulo>Metallica</titulo>
      <
url>http://www.metallica.com</url>
  
</item>
</
categoria>
<
categoria name="cine">
   <
titulo>Volver</titulo>
   <
url>http://www.volver.es</url>
</categoria
¿Alguna idea de como modificar el archivo usando php?

Última edición por Abite; 25/01/2007 a las 10:32
  #2 (permalink)  
Antiguo 25/01/2007, 10:43
 
Fecha de Ingreso: septiembre-2005
Mensajes: 70
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: php y xml

Bueno, mas o menos creo que debe ser algo así, pero no funciona correctamente:

Código PHP:
    // Establecemos conexion
    
$fo_list fopen("$archivo""r");
    while (!
feof($fo_list)) {
        
$cadena .= fgets($fo_list4096);
    }
    
fclose ($fo_list);
    
    
//Buscamos el contenido de la categoria
    
$comprobar '/<categoria name="'.$_GET[categoria].'">(.*?)<\/categoria>/is';
    array (
$resultado);
    
preg_match_all ($comprobar$cadena$resultado);

    
$xml $resultado[1][0];

    
// Añadimos contenido
    
$add          "<item><titulo>Nuevo Titulo</titulo><url>http://www.url.com</url></item>";
    
$remplazo   $xml.$add;
    
$general    '<categoria name="'.$_GET[categoria].'">'.$remplazo.'</categoria>';
    
$cadena str_replace($cadena$general$cadena); 
Pero me parece un poco chapucero el codigo, ¿alguien sabe como hacerlo mas limpio?

Última edición por Abite; 25/01/2007 a las 11:13
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 21:08.