drupal-header

Drupal: Importar y sincronizar desde un XML local o remoto con Migrate

Continuando con Migrate, hoy toca importar XML’s de forma local y remota. Para la forma remota he colocado un XML de ejemplo con un solo item que pueden usar para probar que todo funcione.

Ok sin más dilación esta es la clase para importar de forma remota:

La primer diferencia y que es única para la importación de XML es que no extiende de la clase Migration como vimos en la importación desde DB’s, sino que lo hace de XMLMigration() ya que los XML son un poco especiales a la hora de tratarlos.

Otra cosa que cambia obviamente es el source, que esta vez es MigrateSourceXML() y que requiere 3 cosas como mínimo: la ubicación del archivo ya sea local o remota la ruta, el path que representa un item y por ultimo el identificador único del item. Si revisan el xml que adjunté van a poder verle mas sentido.

Y la última cosa que es única de los XML, es el mapeo de los fields. Pueden ver que MigrateSourceXML() añade un método ->xpath() para que le digamos de donde sacar la información.

Y para la importación local solo hay que cambiar $items_url por algo como:

Chau!

5 Comments

:).