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_itemss[ count( $g_itemss ) - 1 ][ $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( $f, 4096 ) )
{
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 :)