PHP - Ayuda Lectura de XML con PHP

 
Vista:

Ayuda Lectura de XML con PHP

Publicado por Richard (2 intervenciones) el 14/06/2019 03:26:20
Hola amigo necesito que alguien me oriente.

La situacion que tengo es que estoy leyendo XML que ingreso desde un formulario. Ya logré que haga la inserción leyendo los nodos del xml y de igual manera los inserte a la BD. Pero ahora necesito que desde ese formulario se seleccionen varios XML y se inserten a la BD intenté hacerlo con un array pero no logro conseguirlo.

Espero me puedan ayudar.
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
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda Lectura de XML con PHP

Publicado por joel (1269 intervenciones) el 14/06/2019 10:23:18
Hola Richard, no se muy bien como ayudarte... puedes mostrar como lo estas haciendo haber si vemos que esta fallando?
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

Ayuda Lectura de XML con PHP

Publicado por Richard (2 intervenciones) el 14/06/2019 16:20:39
Hola joel, gracias por tomarte el tiempo de ver mi post.

Mira puse el codigo que tengo donde selecciono mediante un formulario un xml y se realiza la lectura del mismo para posterior mente insertar a la bd.
Pero ahora lo que necesito es que lea varios xml al mismo tiempo y los valla insertanto a la bd y en esa parte es la que no logro realizar :( lei que con la funcion de de multiple pero lo que no se hacer es la parte de la lectura de múltiples al igual la inserción de varios


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
67
68
69
70
71
72
73
<div class="card shadow mb-4">
    <div class="card-header py-3">
      <h6 class="m-0 font-weight-bold text-primary">Carga Facturas (prueba)</h6>
    </div>
    <div class="card-body">
 
      <form class="d-none d-sm-inline-block btn btn-sm btn-primary shadow-sm" action="index.php" method="post" enctype="multipart/form-data">
      Selecciona el archivo XML a cargar:
      <input type="file" class="fomr-control" name="archivo_xml" id="archivo" >
      <button type="submit" class="btn btn-primary btn-user btn-sm"  name="enviar_xml">Cargar</button>
      </form>
      <?php
 
      if (isset($_FILES['archivo_xml'])) { //permite recibir una variable que si exista y no sea null
      $dia_guardado =date("d_m_Y");
      $archivo= $_FILES["archivo_xml"]["name"];
      $archivo_copiado= $_FILES["archivo_xml"]["tmp_name"];
      $archivo_guardado= "xml/copia_".$dia_guardado.'_'.$archivo;
    //  echo $archivo." esta en la ruta temporal: ".$archivo_copiado;
      if (copy($archivo_copiado ,$archivo_guardado)) {
    //  echo "<br> se copio correctamente el archivo temporal a la carpeta de trabajo <br/>";
      }else {
      echo "hubo un error <br/>";
      }
      $filasAfectada = 0;
      //Carga del archivo XML
      $xml = simplexml_load_file("$archivo_guardado") or die("Error: No se puede cargar el fichero xml");
      $ns = $xml->getNamespaces(true);
      $xml->registerXPathNamespace('cfdi', $ns['cfdi']);
      $xml->registerXPathNamespace('t', $ns['tfd']);
 
      //EMPIEZO A LEER LA INFORMACION DEL CFDI E IMPRIMIRLA
        foreach ($xml->xpath('//cfdi:Comprobante') as $cfdiComprobante){
 
          //    echo "FOLIO: ";
              $folio_fac =  generarCodigo(6);
            //  echo "$folio_fac";
            //  echo "<br />";
          //    echo "TOTAL: ";
              $cfdi_total = $cfdiComprobante['Total'];
          //    echo "$cfdi_total";
          //    echo "<br />";
        }
        foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Emisor') as $Emisor){
      //    echo "RFC EMISOR: ";
           $cfdie_rfc = $Emisor['Rfc'];
          // echo "$cfdie_rfc";
        //   echo "<br />";
        //   echo "RAZON SOCIAL: ";
           $cfdie_rs = $Emisor['Nombre'];
        //   echo "$cfdie_rs";
        //   echo "<br />";
 
        }
        foreach ($xml->xpath('//cfdi:Comprobante//cfdi:Receptor') as $Receptor){
$cfdir_rfc=$Receptor['Rfc'];
//   echo "<br />";
// echo "$cfdir_rfc";
// echo "<br />";
}
        foreach ($xml->xpath('//t:TimbreFiscalDigital') as $tfd) {
        $uuid=$tfd['UUID'];
    //    echo "$uuid";
      //  echo "<br />";
 
}
//mando a llamar la funcion para insertar los datos 
 
     $resultado_factura = insercion_facturas($folio_fac,$cfdi_total,$cfdie_rfc,$cfdie_rs);
 
    }
 
      ?>
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 Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Ayuda Lectura de XML con PHP

Publicado por Mauro (1036 intervenciones) el 15/06/2019 23:55:27
El arreglo $_FILES es un arreglo común y corriente de PHP... ¿por qué no lo recorres con un foreach y para cada elemento haces el procesamiento?
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