Foros del Web » Programando para Internet » PHP »

Duda para modificar XML con PHP

Estas en el tema de Duda para modificar XML con PHP en el foro de PHP en Foros del Web. Hola he construido un XML con PHP desde una consulta , el pograma va de unas preguntas con varias respuestas , en la tabla tengo ...
  #1 (permalink)  
Antiguo 08/02/2013, 19:34
 
Fecha de Ingreso: diciembre-2011
Ubicación: pontevedra
Mensajes: 17
Antigüedad: 12 años, 4 meses
Puntos: 0
Duda para modificar XML con PHP

Hola he construido un XML con PHP desde una consulta , el pograma va de unas preguntas con varias respuestas , en la tabla tengo una columna que es respuesta corecta de la 1 a la 4.
Entonces tengo qe modificar el xml y nose como plantearlo , debo consultar la respuesta correcta y modificar la salida xml siguiente: $salida_xml .= "<answer fraction='100'> "; .Como veo es 100 pero si es incorrecta tiene que ser 0 . Adjunto programa para ver si me pueden echar un cable... gracias


Código PHP:
<?php
 
header
("Content-type: text/xml");
 
include(
"openbase.php");


function 
base64_encode_image ($filename=string,$filetype=string) {
    if (
$filename) {
        
$imgbinary fread(fopen($filename"r"), filesize($filename));
        return 
'data:image/' $filetype ';base64,' base64_encode($imgbinary);
    }
}

$consulta     "SELECT * FROM `Tests` WHERE `CodiTest` = '".$CodiTest."' "
$salida     mysql_query($consulta$coneccion);

$row         mysql_fetch_array($salida,MYSQL_ASSOC);

$CodiTest    $_GET['CodiTest'];

mysql_free_result($salida); 

$consulta   "SELECT * FROM `Tests_Preguntes`,`Preguntes` WHERE `Id_Test` = '".$CodiTest."' AND `Id_Pregunta` = `Id`  ORDER BY `Posicio` "
$salida     mysql_query($consulta$coneccion);

$salida_xml "<?xml version=\"1.0\"?>\n"
$salida_xml .= "<quiz> ";
 
 
for(
$x $x mysql_num_rows($salida) ; $x++){ 
    
$fila mysql_fetch_assoc($salida);
    
       
$salida_xml .= '<question type="category">'
              
$salida_xml .= "\t<category> ";
                          
$salida_xml .= "\t\t<texto> "
                          
$salida_xml .= "\t\t</texto> "
              
$salida_xml .= "\t</category> ";
      
$salida_xml .= "</question> ";  
  
    
$salida_xml .= '<question type="multichoice"> ';
      
$salida_xml .= '<name> ';
       
$salida_xml .= '<text>' $fila['Pregunta'] . '</text> '
      
$salida_xml .= '</name> ';
    
$salida_xml .= "<questiontext format='html'> ";
       
$salida_xml .= '<text>' $fila['Pregunta'] . '</text> '
    
$salida_xml .= '</questiontext> ';   
       
$salida_xml .= '<image>'.$fila['FotoPreg'].'.'.'jpg'.'</image> ';
      
       
$salida_xml .= '<image_base64>'.$fila['FotoPreg'].'.'.'jpg'.'</image_base64>';
       
$salida_xml .= '<penalty>'.'</penalty> ';
       
$salida_xml .= '<hidden>'.'</hidden> ';
       
$salida_xml .= '<single>'.'</single> ';
           
     
$salida_xml .= "<answer fraction='100'> ";   
       
$salida_xml .= '<text>' $fila['Resp1'] . '</text> ';
       
$salida_xml .= '<feedback> ';    
           
$salida_xml .= '<text></text> ';
       
$salida_xml .= '</feedback> ';
     
$salida_xml .= '</answer> ';
      
     
$salida_xml .= "<answer fraction='0'> ";   
       
$salida_xml .= '<text>' $fila['Resp2'] . '</text> ';
       
$salida_xml .= '<feedback> ';    
           
$salida_xml .= '<text></text> ';
       
$salida_xml .= '</feedback> ';
     
$salida_xml .= '</answer> ';
     
     
$salida_xml .= "<answer fraction='0'> ";   
       
$salida_xml .= '<text>' $fila['Resp3'] . '</text> ';
       
$salida_xml .= '<feedback> ';    
           
$salida_xml .= '<text></text> ';
       
$salida_xml .= '</feedback> ';
     
$salida_xml .= '</answer> ';
     
     
$salida_xml .= "<answer fraction='0'> ";   
       
$salida_xml .= '<text>' $fila['Resp4'] . '</text> ';
       
$salida_xml .= '<feedback> ';    
           
$salida_xml .= '<text></text> ';
       
$salida_xml .= '</feedback> ';
     
$salida_xml .= '</answer> ';  
  
$salida_xml .= '</question>'
    
    
        
// Corregiendo caracteres incorrectos
        
$fila['Pregunta'] = str_replace("&""&amp;"$fila['Pregunta']); 
    
        
$fila['Resp1'] = str_replace("<""&lt;"$fila['Resp1']); 
        
$fila['Resp2'] = str_replace(">""&gt;"$fila['Resp2']); 
        
$fila['Resp3'] = str_replace(">""&gt;"$fila['Resp3']); 
        
$fila['Resp4'] = str_replace(">""&gt;"$fila['Resp4']); 
   
}
 
$salida_xml .= "</quiz>";
 
echo 
$salida_xml;
 
?>
  #2 (permalink)  
Antiguo 09/02/2013, 10:11
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Duda para modificar XML con PHP

porquye mejor no usas http://php.net/manual/en/book.simplexml.php que te permite manejarte por el xml generado por la misma clase y puedas hacer lo que necesites con el, porque ahi lo que hiciste fue crear un XMLstring, bueno es cuestion de que veas si te sirve, saludos.

edit: puedes ver aca http://www.php.net/manual/en/refs.xml.php lo que puedes usar para manipular el XML con php, ve cual te sirve
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Última edición por carlos_belisario; 09/02/2013 a las 10:16
  #3 (permalink)  
Antiguo 10/02/2013, 06:38
 
Fecha de Ingreso: diciembre-2011
Ubicación: pontevedra
Mensajes: 17
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Duda para modificar XML con PHP

Gracias Carlos , tendre que darle otra vuelta , todavia no entiendo bien esto de los padres e hijos y con una clase probe pero me salia la estrucutura igual que la bd y no con la estructura que queria.

un saludo

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:41.