Foros del Web » Programando para Internet » PHP »

Guardar un XML externo en local

Estas en el tema de Guardar un XML externo en local en el foro de PHP en Foros del Web. Buenas, Estoy intentando guardar un xml externo que leo en local para tenerlo también descargado en local y no consigo la parte de copiarlo/guardarlo a ...
  #1 (permalink)  
Antiguo 02/03/2012, 17:01
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Guardar un XML externo en local

Buenas,

Estoy intentando guardar un xml externo que leo en local para tenerlo también descargado en local y no consigo la parte de copiarlo/guardarlo a un fichero local.

Tengo el siguiente código:

Código PHP:
Ver original
  1. <?php
  2. //Verifico que el XML es correcto
  3. $xml = simplexml_load_file($file_xml);
  4. if (!$xml) {
  5.     echo "Error cargando XML\n";
  6.     foreach(libxml_get_errors() as $error) {
  7.         echo "\t", $error->message;
  8.     }
  9. }else{ // Si está correctamente construido lo guardo en local
  10.  
  11.     if(!is_dir($dir_XML)){ // Crea los directorios en caso de no existir
  12.         mkdir($dir_XML, 0700, true);
  13.     }
  14.     $fp = fopen($dir_XML.$nombre, 'w');
  15.     fwrite($fp, $xml); 
  16. }
  17. ?>

Cómo lo podría guardar? alguna sugerencia?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 02/03/2012, 17:17
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Guardar un XML externo en local

Imagino que el $file_xml lo obtienes por una url, aunque no lo aclaras. Si $file_xml es el xml en forma de string, con sólo escribirla a un archivo:

file_put_contents('archivo.xml',$file_xml);

Si el $file_xml es en sí una dirección, habría que ver si es posible leerla con file_get_contents.
  #3 (permalink)  
Antiguo 02/03/2012, 17:47
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Guardar un XML externo en local

Cita:
Iniciado por ocp001a Ver Mensaje
Imagino que el $file_xml lo obtienes por una url, aunque no lo aclaras. Si $file_xml es el xml en forma de string, con sólo escribirla a un archivo:

file_put_contents('archivo.xml',$file_xml);

Si el $file_xml es en sí una dirección, habría que ver si es posible leerla con file_get_contents.
El archivo XML es remoto y lo obtengo por una url externa, sí.

Muchas gracias me sirvió file_put_contents usando también file_get_contents ;)
  #4 (permalink)  
Antiguo 02/03/2012, 17:48
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Guardar un XML externo en local

También puedes usar DOM ya sea directamente o importando a SimpleXML para guardar el XML.

Código PHP:
Ver original
  1. <?php
  2. $dom = new DOMDocument('1.0');
  3. $dom->preserveWhiteSpace = false;
  4. $dom->formatOutput = true;
  5. $ldr = $dom->loadXML(file_get_contents('http://gdata.youtube.com/feeds/api/videos?vq=real%20madrid')); //XML de prueba
  6. $dom->save('directorio/nombre_fichero.xml');
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: externo, local, 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 12:03.