Foros del Web » Programando para Internet » PHP »

cargar archivos simplexml

Estas en el tema de cargar archivos simplexml en el foro de PHP en Foros del Web. Buenas, a ver si alguien encuentra el error.. $zip = new ZipArchive; $zip->extractTo('C:\wamp\www\facturas'); Esto lo hace bien... for ($i=0;$i<$zip->numFiles;$i++) { foreach (glob('C:\wamp\www\facturas\*.xml') as $file); $xml ...
  #1 (permalink)  
Antiguo 28/10/2011, 02:42
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años, 1 mes
Puntos: 1
cargar archivos simplexml

Buenas,
a ver si alguien encuentra el error..

$zip = new ZipArchive;
$zip->extractTo('C:\wamp\www\facturas');

Esto lo hace bien...

for ($i=0;$i<$zip->numFiles;$i++)
{
foreach (glob('C:\wamp\www\facturas\*.xml') as $file);

$xml = simplexml_load_file($file);
....
}

Yo quiero que vaya uno a uno leyendo los ficheros que he extraido en la carpeta pero solo me coge uno...
  #2 (permalink)  
Antiguo 28/10/2011, 04:59
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 8 meses
Puntos: 326
Respuesta: cargar archivos simplexml

prueba esto:

Código PHP:

$files 
glob('C:\wamp\www\facturas\*.xml');
echo 
'<pre>';
print_r($files);
echo 
'</pre>'
Así verás que devuelve exactamente glob :) (función q nunca he usado :S)
Edit: ¿Quizás te falta añadir el path a simplexml_load_file ?
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 28/10/2011, 07:12
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: cargar archivos simplexml

Haciendolo así me pilla todos los ficheros, esto es lo que imprime:

C:\wamp\www\facturas\20110520030326875_F1_01_2.xml
C:\wamp\www\facturas\20110520030385693_F1_01_1.xml
C:\wamp\www\facturas\20110527030361965_F1_01_0.xml

pero luego el simplexml da este error:

Warning: simplexml_load_file() expects parameter 1 to be string, array given in C:\wamp\www\contabilidad7.php
  #4 (permalink)  
Antiguo 29/10/2011, 16:15
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: cargar archivos simplexml

Alguien sabe como solucionar esto? Solo quiero cargar automaticamente con la funcion simplexml_load_file todos los ficheros que tengo en una carpeta?
  #5 (permalink)  
Antiguo 29/10/2011, 16:19
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 7 meses
Puntos: 322
Respuesta: cargar archivos simplexml

El error es bastante claro: le estás pasando un array en lugar de string.
Haz lo que te dijo Eleazan y postea lo que te dá exactamente.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #6 (permalink)  
Antiguo 29/10/2011, 16:27
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: cargar archivos simplexml

la pregunta del millón es: ¿Qué intentas hacer con la información de los XML encontrados?

Código PHP:
Ver original
  1. <?php
  2. $xml = array();
  3. foreach (glob('C:\wamp\www\facturas\*.xml') as $file) {
  4.     $xml[$file] = simplexml_load_file($file);
  5. }
  6.  
  7. echo '<pre>';
  8. print_r($xml); //Un array con toda la información de los XML
  9. echo '</pre>';
__________________
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
  #7 (permalink)  
Antiguo 02/11/2011, 07:11
 
Fecha de Ingreso: octubre-2011
Mensajes: 206
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: cargar archivos simplexml

Luego con cada xml leo los campos que necesito con la siguiente funcion

(foreach ($xmly->nombre as $nombre)

y los inserto en una base de datos. Si lo hago poniendolo como array luego me indica que no lo puede tratar como objeto. Ç

Si hago lo que me dijo eleazan me imprime los tres pero luego la funcion simple xml no los pilla....
  #8 (permalink)  
Antiguo 02/11/2011, 07:45
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 8 meses
Puntos: 326
Respuesta: cargar archivos simplexml

Tienes mal escrita la estructura del foreach...

Debe ser algo así:

Código PHP:

foreach ($a as $b) {
    
//Aqui lo q se quiera hacer

Y no como tienes, q es así:
Código PHP:
foreach($a as $b) ; //Observese el ;! 
__________________
>> Eleazan's Source
>> @Eleazan
  #9 (permalink)  
Antiguo 02/11/2011, 10:56
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: cargar archivos simplexml

Cita:
Iniciado por dasapa Ver Mensaje
Luego con cada xml leo los campos que necesito con la siguiente funcion

(foreach ($xmly->nombre as $nombre)

y los inserto en una base de datos. Si lo hago poniendolo como array luego me indica que no lo puede tratar como objeto. Ç

Si hago lo que me dijo eleazan me imprime los tres pero luego la funcion simple xml no los pilla....
En el ejemplo que te dejé $file es un objeto con el XML y sólo necesitas un condicional para buscar $file->nombre en cada iteración, no veo cual es tu problema.
__________________
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: simplexml
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:47.