php - create - Importación de XML a MySQL 5.1
php-xml install (3)
Disculpe mi falta de conocimiento ... Sé que hay mucha documentación en Internet relacionada con esto, pero todavía no entiendo.
Mi situación es esta:
Tengo un archivo XML que necesito importar y eventualmente reemplazar a diario.
<item>
<model>AA311-Pink</model>
<title>1122</title>
<price>19.43</price>
<category>cat</category>
<loc>/AA311.html</loc>
<image>/aa311.jpg</image>
<description>Item Info</description>
<weight>0.45</weight>
<option_type>Color-Color</option_type>
<option_value>Pink-Pink</option_value>
<suggested_retail>51.50</suggested_retail>
<special_handling/>
<manufacturer>Tantus</manufacturer>
<manufacturer_code>VB5074 and VB5067</manufacturer_code>
<packaging>Retail Packaging</packaging>
<in_stock>Yes</in_stock>
<lastupdated>2008-11-05 16:35:56</lastupdated>
Necesito cambiar un puñado de los nombres de columna automáticamente e importarlos a varias tablas en mi base de datos.
Por ejemplo,
<item>
<products_model>AA315</products_model>
<products_name>name</products_name>
<price>19.43</price>
<category>cat</category>
<loc>/AA315.html</loc>
<products_image>aa315.jpg</products_image>
<products_description>info</products_description>
<products_weight>0.44</products_weight>
<option_type/>
<option_value/>
<products_price>51.50</products_price>
<special_handling/>
<manufactures_name>Tantus</manufactures_name>
<manufacturer_code>VA5104</manufacturer_code>
<packaging>Retail Packaging</packaging>
<products_status>Yes</products_status>
<products_last_modified>2008-11-05 16:35:27</products_last_modified>
Y luego importar a MySQL DB
Columnas: products_weight, products_model, products_image, products_price, products_last_modified
importar en la tabla ''productos''
Columnas: products_description, products_name
importar a la tabla ''product_description
¿Qué pasa con el product_id que se crea automáticamente? Puedo enviar el resultado SQL de la estructura de la tabla.
Realmente aprecié la ayuda ... Estoy dispuesto a pagar algo si están dispuestos a crear un procedimiento totalmente automático para importar este archivo en mi base de datos; Estoy usando Zen Cart para alojar mi carrito de compras.
Deberías leer esto: cargar un XML en MySQL http://dev.mysql.com/doc/refman/5.5/en/load-xml.html
Esto te permite hacer algo como esto:
mysql> LOAD XML LOCAL INFILE ''items.xml''
-> INTO TABLE item
-> ROWS IDENTIFIED BY ''<item>'';
No se requiere pago, el uso de XML en MySQL 5.1 y 6.0 responderá la mayoría de sus preguntas. Además, regrese a la parte superior y lea toda la página, puede hacer mucho con XML y MySQL.
Sí, gracias gx, http://web.archive.org/web/20100105150533/http://dev.mysql.com/tech-resources/articles/xml-in-mysql5.1-6.0.html#xml-5.1- la importación lo hizo por mí. Usé el procedimiento almacenado allí mencionado, pero tiene un pequeño error si quieres importar a otra tabla que no sea ''t1''. Simplemente reemplaza la línea
SET @ins_text = CONCAT(''INSERT INTO t1 ('', ins_list, '') VALUES ('', val_list, '')'');
con
SET @ins_text = CONCAT(''INSERT INTO '', database_name, ''.'', table_name, '' ('', ins_list, '') VALUES ('', val_list, '')'');
Ejecute el procedimiento a través de
call xmldump_load(''<filename>'', ''<schema>'', ''<tablename>'');
Antes de llamar a este procedimiento, asegúrese de que el archivo para importar esté accesible, por ejemplo, en la carpeta de datos de mysql (/ var / lib / mysql /) y ejecútelo con un usuario con permiso de ARCHIVO.