PHP - no lee .XML

 
Vista:
Imágen de perfil de Eduardo
Val: 70
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

no lee .XML

Publicado por Eduardo (13 intervenciones) el 09/05/2020 15:12:40
Saludos expertos,

Tengo el siguiente código para validar un login para clientes de una empresa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
 
   session_start() ;
 
   include( 'funcion.php' ) ;
 
   if ( isset($_GET["frm_clicod"]) ) {
 
      $fases = 1 ;
      $clie_codigo = $_GET["frm_clicod"] ;
      $clie_clave  = $_GET["frm_clipas"] ;
 
      if ( strlen($clie_codigo)==4 ) {
 
         $clie_pas = 'pases/' . $clie_codigo . '.txt' ;
         $clie_xml = 'clientes/' . $clie_codigo . '.xml' ;
 
         if ( file_exists($clie_pas) && file_exists($clie_xml) ) {
 
            $clie_lee = leetxt( $clie_pas ) ;
            $clie_key = $clie_lee[0] ;
 
            if ( $clie_clave == $clie_key ) {
 
               $clie_data = simplexml_load_file( $clie_xml );
               $clie_dirs = ARRAY() ;
 
               if ( $clie_data==false ) {
                  echo 'ERROR: El xml no se pudo leer' ;  //<- ME MUESTRA ESTE MENSAJE
               }
               $clie_ruc    = $clie_data->cliente->ruc ;
               $clie_nombre = $clie_data->cliente->razonsocial ;
               $clie_cat    = $clie_data->cliente->cat ;
               $clie_plan   = $clie_data->cliente->plan ;
               $clie_vend   = $clie_data->cliente->vend ;
               $clie_pp     = $clie_data->cliente->pp ;
 
               foreach( $clie_data->direcciones as $dirx ) {
 
                  $clie_dirs[] = array( $dirx->DireccId , $dirx->DireccDesc ) ;
 
               }
 
               $_SESSION["mem_clicod"]     = $clie_codigo ;
               $_SESSION["mem_cliruc"]     = $clie_ruc    ;
               $_SESSION["mem_clinom"]     = $clie_nombre ;
               $_SESSION["mem_clicat"]     = $clie_cat    ;
               $_SESSION["mem_clipla"]     = $clie_plan   ;
               $_SESSION["mem_cliven"]     = $clie_vend   ;
               $_SESSION["mem_clipp"]      = $clie_pp     ;
               $_SESSION["mem_clidir"]     = $clie_dirs   ;
 
               echo 'Acceso concedido a '.$clie_nombre.'</br>' ;
               foreach( $clie_dirs as $dirx ) {
                  echo 'Direccion: '.$dirx[1].'</br>' ;
               }
 
            }
         }
      }
   }
 
   echo "C&oacutedigo de cliente no v&aacutelido (".$fases.")" ;
   return false;
 
?>

La funcion simplexml_load_file() no puede leer el .XML me retorna la variable vacia y con valor false.

Este es el .xml que estoy tratando de leer (Tambien lo envio como adjunto.) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<cliente>
   <codigo>0008</codigo>
   <ruc>20509978477</ruc>
   <razonsocial>FARMAVICTORIA SAC.</razonsocial>
   <cat>ACC</cat>
   <plan>A</plan>
   <vend>JUVITSA</vend>
   <pp>S</pp>
</cliente>
<Direcciones>
  <Direcc>
      <DireccId>3</DireccId>
      <DireccDesc>AV. BOLIVAR 1155 - PUEBLO LIBRE - LIMA</DireccDesc>
   </Direcc>
</Direcciones>

Por favor agradeceré cualquier ayuda.

Salud y bienestar para todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

no lee .XML

Publicado por Juan Carlos (4 intervenciones) el 13/05/2020 07:41:58
Estas seguro que en la linea 25 el archivo $clie_xml es el nombre correcto de la direccion del archivo, porque antes armas esa variable y aparentemente por el error que indicas no cargas ningun archivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

no lee .XML

Publicado por javier (547 intervenciones) el 13/05/2020 08:56:22
Hola

la estructura de tu archivi XML esta mal

tu la tienes asi;

1
2
3
4
5
6
7
<cliente>
//los datos que sean
</cliente>
 
<direcciones>
//las direccciones
</direcciones>

y todo est ha de estar englobado entre dos etiquetas genericas del cliente por ejemplo deberia ser una estrucctura asi:

1
2
3
4
5
6
7
8
9
10
<ETIQUETA_PRINCIPAL QUE ENGLOBA TODO EL XML>
<cliente>
//los datos que sean
</cliente>
 
<direcciones>
//las direccciones
</direcciones>
 
</ETIQUETA_PRINCIPAL QUE ENGLOBA TODO EL XML>

Y solo con haber puesto error_reporting(E_ALL) al principio del script, te hubieras dado cuenta, te hubieran salido estos errores

1
2
3
4
5
Warning: simplexml_load_file(): archivo.xml:12: parser error : Extra content at the end of the document in C:\xampp
 
Warning: simplexml_load_file(): <Direcciones> in C:\xampp\h
 
Warning: simplexml_load_file(): ^ in C:\xampp\

hay que manejar siempre, siempre los errores

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

no lee .XML

Publicado por javier (547 intervenciones) el 13/05/2020 09:13:10
Hola,

es una mania muy mala a la hora de preguntar, el no manejar los errores de PHP y MySQL a la hora de programar
TODOS los programadores expertos o no, lo hacen, por que nadie, y repito, nadie, programa algo a la primera sin errores, ni el programador mas experimentado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar