Hola compañero, Soy programador en php y trabajo con bases de datos mysql. En mi trabajo me han pedido que pase un archivo xml a mysql. No tengo ni idea de que hacer por lo que si me puedes ayudar me harías un gran favor. Muchas gracias, David
Respuesta de zurdoil
1
1
zurdoil, Nombre: Sebastian Pederiva Fecha de nacimento: 15/12/75...
Tal vez te pueda ayudar aunque no sepa nada de php ni me mysql, yo trabajo con microsoft SQL y con asp, pero tal vez te pueda ayudar, el sql de microsoft si puede leer archivos xml como si fueran tablas y así importarlas a una verdadera tabla de sql
Hola, antes de nada agradecerte el haber contestado tan rapido. Lo que necesito es que el mysql pueda leer el xml para importar esos datos al mysqlNo tengo ni idea de como lo puedo hacer por lo que cualquier ayuda me iría de fabula. Muchas gracias
Espero que te sirva!. Si no sabes como usarlo, avisame y te explico paso a paso /* Updates language info for a user Input parameter is XML formated list of items. */ CREATE Procedure PERS_update_Language_list @UserId numeric, @LanguageList ntext as DECLARE @idoc int; EXEC sp_xml_preparedocument @idoc OUTPUT, @LanguageList; declare @PersLanguageId numeric; declare @LanguageId int; declare @LanguageLevelId int; declare crs cursor for SELECT PersLanguageId, LanguageId, LanguageLevelId FROM OPENXML (@idoc, '/ROOT/Language',1) WITH ( PersLanguageId numeric, LanguageId int, LanguageLevelId int ); begin tran _tran; delete from persLanguages where userId = @userId and not PersLanguageId in ( SELECT PersLanguageId FROM OPENXML (@idoc, '/ROOT/Language',1) WITH ( PersLanguageId numeric, LanguageId int, LanguageLevelId int ) where not persLanguageid is null ) if( @@ERROR != 0 ) begin rollback tran _tran select '-1' as Result for xml raw return -1; end open crs; FETCH NEXT FROM crs into @PersLanguageId, @LanguageId, @LanguageLevelId WHILE @@FETCH_STATUS = 0 BEGIN declare @res int if( @PersLanguageId is null ) exec @res = pers_add_language @userId, @LanguageId, @LanguageLevelId else exec @res = pers_update_Language @persLanguageId, @LanguageId, @LanguageLevelId if @res < 0 begin rollback tran _tran; close crs; deallocate crs; select @res as Result for xml raw return @res end; FETCH NEXT FROM crs into @PersLanguageId, @LanguageId, @LanguageLevelId END CLOSE crs DEALLOCATE crs commit tran _tran; if( @@ERROR != 0 ) begin select '-1' as Result for xml raw return -1; end select 0 as Result for xml raw return @userId;