Foros del Web » Programando para Internet » PHP »

como modificar un xml desde php

Estas en el tema de como modificar un xml desde php en el foro de PHP en Foros del Web. saludos gentita, tengo una animación super lo pueden ver en www.puropisco.net , seccion la carta. donde hay una animacion de platos que utiliza un archivo ...
  #1 (permalink)  
Antiguo 15/07/2011, 08:08
Avatar de frankjoel86  
Fecha de Ingreso: noviembre-2008
Ubicación: Ica
Mensajes: 295
Antigüedad: 15 años, 6 meses
Puntos: 0
como modificar un xml desde php

saludos gentita, tengo una animación super lo pueden ver en www.puropisco.net, seccion la carta. donde hay una animacion de platos que utiliza un archivo xml, para extraer las imagenes. ahora me han pedido hacer un panel que administre las imagenes de la carta(codigo q me descarga de internet y lo acople).

El script principal del flash llama al archivo .xml, cuando le cambio por el .php(para llamar el select q crea un xml desde php) no funciona

la unica solucion q se me viene a la cabeza es. como modificar un archivo xml desde php.

se agradece el apoyo
__________________
www.basritours.com
Agencia de turismo en Ica.
  #2 (permalink)  
Antiguo 15/07/2011, 08:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como modificar un xml desde php

La opción de generar el XML desde PHP es la mejor, solo asegurate que envias las cabeceras correctas:
Código PHP:
Ver original
  1. <?php
  2. header('Content-type: text/xml');
  3. // tus selects
  4. ?>
  5. <!-- Aqui creas tu XML -->

Saludos.
  #3 (permalink)  
Antiguo 15/07/2011, 08:16
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: como modificar un xml desde php

Hola que tal checa esto

Manejo de XML

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 15/07/2011, 08:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: como modificar un xml desde php

Añado a lo de GatorV si usas DOM o SimpleXML mejor aun.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 17/07/2011, 10:30
Avatar de frankjoel86  
Fecha de Ingreso: noviembre-2008
Ubicación: Ica
Mensajes: 295
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: como modificar un xml desde php

gracias GatorV, estoy generando el xml desde un php con el sgte codigo, pero al leer el php en el flash dice undefined.

<?PHP

$link =mysql_connect("localhost","root","") or die("error en conex");
mysql_select_db("db");

header("Content-type: text/xml\n\n");
echo ('<?xml version="1.0" encoding="utf-8"?>' . "\n");
echo "<photos>\n";

$results = mysql_query("select *from carta", $link);
while($line = mysql_fetch_assoc($results)) {

$filename = $line["filename"];
$thumbnail = $line["thumbnail"];
$description = $line["description"];

echo "<photo filename=\"".$filename."\" thumbnail=\"".$thumbnail."\" description=\"".$line["description"]."\" />\n";
}
mysql_close($link);
echo "</photos>";
?>

otra opcion seria leer xml con simpleXML o Dom como dice abimaelrc. aunque parece que es un poco mas complejo, pero igual intentare entenderlo.
__________________
www.basritours.com
Agencia de turismo en Ica.
  #6 (permalink)  
Antiguo 17/07/2011, 12:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: como modificar un xml desde php

Para crear un archivo XML con SimpleXML o DOM es bien simple. Te doy un ejemplo con SimpleXML
Código PHP:
Ver original
  1. <?php
  2. $xml = new SimpleXMLElement("<foo></foo>");
  3. $xml->addAttribute('fooattr', 'value of fooattr');
  4.  
  5. $bar = $xml->addChild('bar');
  6. $bar->addAttribute('barattr', 'value of barattr');
  7.  
  8. $baz = $xml->addChild('baz');
  9.  
  10. $candy = $baz->addChild('candy', 'value of candy');
  11. $candy->addAttribute('candyattr', 'value of candyattr');
  12.  
  13. $fruits = $baz->addChild('fruits', 'value of fruits');
  14. $fruits->addAttribute('fruitsattr', 'value of fruitsattr');
  15.  
  16. $vegetable = $baz->addChild('vegetable', 'value of vegetable');
  17. $vegetable->addAttribute('vegetableattr', 'value of vegetableattr');
  18.  
  19. header('Content-type: text/xml; charset=utf-8');
  20. echo $xml->asXML();
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 17/07/2011, 23:38
Avatar de frankjoel86  
Fecha de Ingreso: noviembre-2008
Ubicación: Ica
Mensajes: 295
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: como modificar un xml desde php

gracias abimaelrc, el ejemplo funciona estoy avanzando paso a paso y agradesco de su apoyo nuevamente.

les comento, tengo el archivoflashmo_024_photos.xml
---------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<photos>
<photo filename="1.jpg" thumbnail="01.jpg" description="-" />
<photo filename="2.jpg" thumbnail="02.jpg" description="-" />
</photos>
-------------------------------------------------------------------
gracias a este archivo funciona la galeria en flash.

leer.php
---------------------------------------------------------------
<?php
$data=file_get_contents( 'flashmo_024_photos.xml' );
$xml = simplexml_load_string($data);

header('Content-type: text/xml');
echo $xml->asXML();
?>
* Me muestra los elementos con sus atributos.

agregar.php
---------------------------------------------------------------------------
<?php
$data=file_get_contents( 'flashmo_024_photos.xml' );
$xml = simplexml_load_string($data);

$photos = $data->addChild('photo');
$book->addAttribute('photo', "filename");

header('Content-type: text/xml');
echo $data->asXML();

$data->asXML('flashmo_024_photos.xml'); //guardar en el archivo
?>
*aca se desea agregar otro elemento con los atributos photo y filename y ser guardados en el mismo xml, pero me sale error en la linea 6
*Mi meta es poder agregar, modificar y eliminar el xml, nuevamente se agradece el apoyo
__________________
www.basritours.com
Agencia de turismo en Ica.
  #8 (permalink)  
Antiguo 17/07/2011, 23:49
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: como modificar un xml desde php

a lo que se referia @abimaelrc es que generes el XML al "vuelo" con simpleXML, por ejemplo, guardar las imagenes en un base de datos y luego recuperar las imagenes y generar el XML desde PHP pero sin generar un archivo fisico
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 18/07/2011, 09:44
Avatar de frankjoel86  
Fecha de Ingreso: noviembre-2008
Ubicación: Ica
Mensajes: 295
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: como modificar un xml desde php

efectivamente Nemutagk cuando genero el xml desde php, el action script no reconoce la extensión .php y no carga las imagenes (como lo afirmo al inicio).

Por eso afirmo que la unica solución es modificar el archivo xml desde el php.
*Nuevamente se agradece el apoyop =)
__________________
www.basritours.com
Agencia de turismo en Ica.
  #10 (permalink)  
Antiguo 18/07/2011, 12:16
 
Fecha de Ingreso: septiembre-2010
Ubicación: Corrientes - Argentina
Mensajes: 37
Antigüedad: 13 años, 7 meses
Puntos: 2
Respuesta: como modificar un xml desde php

Mira yo he hecho un feed en con php y xml modificando un archivo externo, fíjate si este código te sirve si le cambias a los elementos que tiene tu xml en especial:

Código PHP:
<?php
$archivo 
fopen("NombreyRutaAlXml.xml""w+");
$encabezado'<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
    <atom:link href="http://www.tudominio.com" rel="self" type="application/rss+xml" />
    <title>Tu dominio.com</title>
      <link>http://www.tudominio.com</link>
      <description>Galeria de Imagenes</description>'
;
$escritor=fwrite($archivo$encabezado);        
fclose($archivo);

$archivo1 fopen("NombreyRutaAlXml.xml""a");



$leer"SELECT imagen.titulo, imagen.fecha, imagen.url, imagen.descripcion, imagen.id  FROM imagen ORDER BY imagen.fecha DESC LIMIT 0,10";
include(
'../conexion.php');
$resultadomysql_query ("$leer"$conexion);
while( 
$leer mysql_fetch_row($resultado) ){

$item='    <item>
            <title>'
.$leer[0].'</title>
            <date>'
.$leer[1].'</date>
            <link>'
.$leer[2].'</link>
            <description>'
.$leer[3].'</description>
            <guid>http://www.tudominio.com/galeriadeimagenes/imagen/'
.$leer[4].'.jpg</guid>
        </item>
        '
;
$escritor=fwrite($archivo1$item);
}

//introduce final
$final='</channel>
</rss>'
;
$escritor=fwrite($archivo1$final);
fclose($archivo1);
?>
Con esto se crea y modifica un archivo .xml con php. Deberias cambiar el encabezado xml que quieras y los items utilizados.

Espero te Sirva.
__________________
Si esta vida te da la espalda, siempre puede tocarle el c...
  #11 (permalink)  
Antiguo 18/07/2011, 12:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: como modificar un xml desde php

Con file_put_contents es suficiente para subir nuevamente todo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: imagenes, modificar, 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 03:49.