A ver, yo estoy haciendo algo parecido, y para eso uso un parser para pasar de un archivo .xml a un archivo .php
Por encima la cosa seria hacer un archivo .php que contendria lo siguiente:
--------------------------------------------------
<?php
$etiquetaActual="";
function ComienzoElemento($parser,$name,$attribs)
{
global $etiquetaActual, $currentAttribs;
$etiquetaActual=$name;
switch($name)
{ case "GALERIA":
echo '<center><table>';
break;
case "CANTIDAD":
echo '<tr><td><b>Cantidad:</b> <input type="text"> ';
break;
case "TITULO":
echo '<tr><td><b>Titulo:</b> <input type="text"> ';
break;
default:
echo "no hay mas etiquetas";
}
}
function FinalElemento($parser,$name)
{
global $etiquetaActual;
switch ($name)
{
case "GALERIA":
echo "</table></center>";
break;
case "CANTIDAD":
echo "</td></tr>";
break;
case "TITULO":
echo "</td></tr>";
break;
default:
echo "error en formato ficha";
}
$etiquetaActual="";
}
function Datos($parser,$data)
{
global $etiquetaActual;
switch ($etiquetaActual)
{
case "ASIGNATURA":
echo $data;
break;
case "NOMBRE":
echo $data;
break;
}
}
$file = "imagenes.xml";
$xmlParser = xml_parser_create();
$targetEncoding=xml_parser_get_option($xmlParser,X ML_OPTION_TARGET_ENCODING);
xml_set_default_handler($parser,"Datos");
xml_set_element_handler($xmlParser,"ComienzoElemen to", "FinalElemento");
xml_set_character_data_handler($xmlParser, "Datos");
if (!($fp = fopen($file, "r"))) {
die("No se puede abrir el fichero: $file");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($xmlParser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xmlParser)),
xml_get_current_line_number($xmlParser)));
}
}
xml_parser_free($xmlParser);
printf('<input type="submit" method="post" name="enviar"></input>');
¿>
---------------------------------------------
Faltarian hacer algunas cosas, pero vamos que de esta manera tendras un formulario en php. A partir de ahi pues coge los datos que introduces y ya los almacenas donde quieras (mediante POST)