convertir datos xml en mysql insertar / actualizar consulta usando php

Estoy trabajando en este proyecto que básicamente lee los datos del archivo xml e inserta / actualiza los datos en la base de datos mysql.

Aquí está el archivo sample.xml:

 Titanic 40 5 4 3 

Divido el problema en: 1) Obtener los valores del archivo XML. 2) Insertar los valores extraídos en la base de datos mysql.

Puedo trabajar para insertar los valores en la base de datos, pero la parte difícil es obtener los valores de xml que me vuelven loco.

Aquí está mi tabla de base de datos se ve como:

Nombre de la base de datos: Películas Columnas: nombre de película, dvd, blueray, netflix, amazon

Aquí está el código que intenté extraer los valores de los atributos de xml.

 column->attributes()->name; echo $movie_name. "\n"; ?> 

Salida: En lugar de obtener el nombre de la película “Titanic”, obtengo “movie_name”.

Puede utilizar esta consulta:

 column->attributes()->name; //echo $movie_name. "\n"; $table = $xml->attributes()->name; $columns =""; foreach($xml as $column){ $columns .= (string)$column->attributes()->name .","; } $columns = rtrim($columns, ","); $values =""; foreach($xml->column as $value){ $values .= $value ."," ; } $values = rtrim($values, ","); $query = " INSERTO INTO $table ( $columns ) VALUES ( $values ) "; echo $query; ?> 

Estás recuperando exactamente lo que pediste. atributos () mira los atributos, nombre le da el nombre del atributo. Puedes obtener el nombre haciendo esto

 $movieName = (string)$xml->column; 

Si quieres todos los valores, puedes recorrer las columnas

 foreach($xml->column as $xColumn) { $value = (string)$xColumn; } 

el valor del atributo de nombre IS movie_name. Titanic es el valor del elemento Columna que tiene el atributo de nombre con el valor.