Tema: FAQ's de PHP
Ver Mensaje Individual
  #182 (permalink)  
Antiguo 10/07/2007, 09:18
daenor
 
Fecha de Ingreso: diciembre-2004
Mensajes: 197
Antigüedad: 19 años, 10 meses
Puntos: 1
De acuerdo Valores XML a Mysql utilizando PHP

Tema: XML a Mysql utilizando por PHP
Pregunta: ¿Cómo puedo pasar valores de un archivo XML a una base MySQL utilizando PHP?

Respuesta:

Comunidad querida, investigando, me pareció interesante publicar esto.
Un proceso generalizado, para su entendimiento :)

archivo.xml:
Código PHP:
<?xml version "1.0" encoding="Windows-1252" standalone="yes"?>
<VFPData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="items.xsd">
    <campos>
        <valor1>12351</valor1>
        <valor2>Viento</valor2>
        <valor3>sgsfgds4</valor3>
        <valor4>Idggdssg</valor4>
    </campos>
    <campos>
        <valor1>12352</valor1>
        <valor2>Agua</valor2>
        <valor3>fdgdg 204</valor3>
        <valor4>Isdg  rthyh56 h</valor4>
    </campos>
</VFPData>

Código PHP:
<?php
  $g_itemss 
= array();
  
$g_elem_item null;
  
  function 
startElement$parser$name$attrs 
  {
  global 
$g_itemss$g_elem_item;
  if ( 
$name == 'CAMPOS' $g_itemss []= array();
  
$g_elem_item $name;
  }
  
  function 
endElement$parser$name 
  {
  global 
$g_elem_item;
  
$g_elem_item null;
  }

  function 
textData$parser$text )
  {
  global 
$g_itemss$g_elem_item;
  if ( 
$g_elem_item == 'VALOR1' ||
  
$g_elem_item == 'VALOR2' ||
  
$g_elem_item == 'VALOR3' ||
  
$g_elem_item == 'VALOR4' )
  {
  
$g_itemsscount$g_itemss ) - ][ $g_elem_item ] = $text;
  }
  }
  
  
$parser xml_parser_create();
  
  
xml_set_element_handler$parser"startElement""endElement" );
  
xml_set_character_data_handler$parser"textData" );
  
  
$f fopen'archivo.xml''r' );
  
  while( 
$data fread$f4096 ) )
  {
  
xml_parse$parser$data );
  }
  
  
xml_parser_free$parser );
  
  foreach( 
$g_itemss as $item_booked )
  {

    
$numorden $item_booked['valor1'];
    
$tipoint $item_booked['valor2'];
    
$numoper $item_booked['valor3'];
    
$sector $item_booked['valor4'];
    

include(
"config.php"); //archivo de conexión a la base de datos

//////////////////////////////////////
//////////////////////////////////////
    
mysql_query("INSERT INTO tabla (mis_campos)values($mis_variables)")or die(mysql_error());
    
mysql_free_result($grabaITEMS);
    
mysql_close ();
}
?>

Espero que sirva!!

Saludos!
Daenor :)
__________________
Diseñador y Desarrolador en Proyecto81 WebStudio