Foros del Web » Programando para Internet » PHP »

Agregar Datos a un XML Desde PHP

Estas en el tema de Agregar Datos a un XML Desde PHP en el foro de PHP en Foros del Web. Buenas, como veran este es mi primer post en esta comunidad, que de por cierto... es muy buena, y los felicito a todos por el ...
  #1 (permalink)  
Antiguo 02/12/2008, 00:12
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Busqueda Agregar Datos a un XML Desde PHP

Buenas, como veran este es mi primer post en esta comunidad, que de por cierto... es muy buena, y los felicito a todos por el foro ^^

Eh aprendido mucho aca, aunque se ve que no lo suficiente...soy nuevo, muy nuevo en esto del php...

Bueno, al tema.... mi pregunta es como se puede hacer para agregar un dato a un archivo XML, es decir... tengo un xml por un lado, y un formulario en php por otro, y que se agreguen los datos que ingrese en el formulario php al xml.

Pero... no tan asi es lo que quiero... lo que quiero seria un poco mas complejo (por lo menos desde mi punto de vista)

Código PHP:
- <config>
  <
param name="flv" value="http://e7.video.blip.tv/1130006411364/Mdluffy-OP379717.flv|http://www.iberotv.com/flvideo/3048.flv|http://e7.video.blip.tv/1080006228482/Lufycito-OP377SubEspaol354.flv|http://e5.video.blip.tv/1680006132248/Lufycito-onePiece376SubEspaol115.flv" /> 
</
config
Esa es una parte del archivo XML, lo que yo quiero es que la informacion se agregue donde empieza la " despues de value= osea...

Código PHP:
value="NUEVA INFORMACION|http://e7.video.blip.tv/1130006411364/Mdluffy-OP379717.flv|http://www.iberotv.com/flvideo/3048.flv|http://e7.video.blip.tv/1080006228482/Lufycito-OP377SubEspaol354.flv|http://e5.video.blip.tv/1680006132248/Lufycito-onePiece376SubEspaol115.flv" />
Y otra cosa es que tampoco se borren los otros link, que solo se agregue la informacion adelante...

Bueno, creo que eso seria todo...Muchas gracias ^^
  #2 (permalink)  
Antiguo 02/12/2008, 10:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Agregar Datos a un XML Desde PHP

Hola bioxido,

Para hacer lo que requieres necesitas usar fopen() fwrite() fclose(), solo que no es tan sencillo, vas a tener que leer todo tu XML, parsear los datos, modificar los que necesites y volver a re-escribir todo el XML.

Otra opción más correcta es manipular el XML usando la extensión DOM XML de PHP aunque puede ser un poco más complicada sobre todo si eres nuevo en el lenguaje.

Saludos.
  #3 (permalink)  
Antiguo 02/12/2008, 11:11
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Agregar Datos a un XML Desde PHP

ah... si, lo intente con las funciones fopen() fwrite() y fclose()... pero me parece que me falto la parte de "parsear los datos, modificar los que necesites y volver a re-escribir todo el XML"

Ya que me agregaba los datos al final, y eso no es lo que nesecito :S

Voy a ver si me sirve eso de DOM XML, aunque lo veo dificil :P(dificil para que lo haga yo...)
  #4 (permalink)  
Antiguo 02/12/2008, 11:41
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Agregar Datos a un XML Desde PHP

Bioxido:
Siguiendo con la recomendacion de GatorV,
Abre el archivo con file()
$linea = file("Elarchivo.xml");
Recuerda que es un array donde la primera linea
es:
primeralinea = linea[0]; y asi sucesivamente.
Seguidamente identifica cual linea quieres cambiar
ya sea con una busqueda linea por linea u otra manera!!!
y ubicala en terminos del array:
Ejemplo: supongamos que sea la linea (linea[5];).
Determina como va a hacer la nueva linea:
ejemplo
linea[5] = "lo que sea; es decir ya modificado";
haces un: (Conteo del array.)
$w = count($linea);
AHORA ABRES EL MISMO ARCHIVO con FOPEN,
COMO TE INDICO GATORV.
$cambiando = fopen("Elarchivo, "w");
Una vez que lo abres con "w" y RE-Escribes todo
asi:
for($y=0; $y<5; $y++) { fwrite($cambiando, $linea[$y]); }
fwrite($cambiando, $linea[5]);
for($x=6; $x<$w; $x++) { fwrite($cambiando, $linea[$x]); }
Aqui termina y tienes
un nuevo XML con los cambios deseados.
Lo importante es determinar via una busqueda dentro de una linea
especifica, la linea sujeta de cambio. Sustituir y reescribir la linea
especifica.
Saludos
Y espero te ayude
Franco
  #5 (permalink)  
Antiguo 02/12/2008, 14:04
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Agregar Datos a un XML Desde PHP

Gracias, creo que eso me va a ayudar mucho... ahora me pongo a esperimentar ^^
  #6 (permalink)  
Antiguo 04/12/2008, 19:30
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Agregar Datos a un XML Desde PHP

Emmm... Bueno me complique de nuevo... la verdad que no lo hice como dije al principio, ya que es lo veo muy dificil... pero se me ocurrio otra manera de hacerlo, pero me salio otro problema ... tengo el siguiente codigo

Código PHP:
<?php

$rutaflv 
$_POST['procesar'];

$archivo "playerconfig.xml";

$xml file("$archivo");

$linea[5] = "$rutaflv";

$w count($linea);

$cambiando fopen("$archivo""w+");


for(
$y=0$y<5$y++) { fwrite($cambiando$linea[$y]); 
}

fwrite($cambiando$linea[5]);

for(
$x=6$x<$w$x++) { fwrite($cambiando$linea[$x]); 
}

fclose ($archivo);


?>
Me imagino que hay muchas cosas que sobran ahi, pero no se cuales xD..bueno, lo que hace es reescribirme todo el CSS... pero tengo un problema...

ponele que la variable "linea[5]" es igual a.. "<param name="width" value="600"/>"

Bueno, cuando me escribe esa variable en el documento xml me la escribe con muchos guiones de decir me la escribue asi:

"<param name=\"width\" value=\"600\"/>"


Por que puede ser eso?

Gracias por su ayuda ^^ y, acuerdense que no se mucho de php, hace menos de 2 semanas que me puse a ver php...Gracias.
  #7 (permalink)  
Antiguo 04/12/2008, 19:39
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Agregar Datos a un XML Desde PHP

bioxido:
Con stripslashes()
le quitas las \ que tienes.
Recuerda que la busqueda es fundamental ya que debe generar un numero
que identifica la parte que quieres cambiar y para un script completo este numero
cinco (5) debe constituirse en una variable.
Saludos
Franco
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 10:05.