Foros del Web » Programando para Internet » PHP »

Convertir XML a HTML con PHP, problema con parser

Estas en el tema de Convertir XML a HTML con PHP, problema con parser en el foro de PHP en Foros del Web. Hola, estoy usando la siguiente función para coger un XML y convertirlo en html, pero no me sale (nada) bien. ¿Hay otro sistema mejor? <?php ...
  #1 (permalink)  
Antiguo 22/07/2008, 04:24
Usuario no validado
 
Fecha de Ingreso: marzo-2004
Mensajes: 349
Antigüedad: 20 años
Puntos: 0
Convertir XML a HTML con PHP, problema con parser

Hola, estoy usando la siguiente función para coger un XML y convertirlo en html, pero no me sale (nada) bien. ¿Hay otro sistema mejor?

<?php
$file = "test.xml";
$map_array = array(
"BOLD" => "B",
"EMPHASIS" => "I",
"LITERAL" => "TT"
);

function startElement($parser, $name, $attrs) {
global $map_array;
if ($htmltag = $map_array[$name]) {
print "<$htmltag>";
}
}

function endElement($parser, $name) {
global $map_array;
if ($htmltag = $map_array[$name]) {
print "</$htmltag>";
}
}

function characterData($parser, $data) {
print $data;
}

$xml_parser = xml_parser_create();
// usa case_folding para que estemos seguros de encontrar la etiqueta
// en $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
?>
  #2 (permalink)  
Antiguo 22/07/2008, 04:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 18 años, 11 meses
Puntos: 6
Respuesta: Convertir XML a HTML con PHP, problema con parser

¿Qué es lo que no te sale bien? ¿Te sale algo, aunque sea mal? ¿Te salen errores? ¿No te sale nada?
  #3 (permalink)  
Antiguo 22/07/2008, 04:38
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 4 meses
Puntos: 24
Respuesta: Convertir XML a HTML con PHP, problema con parser

Cita:
Iniciado por JBRS Ver Mensaje
¿Hay otro sistema mejor?
En mi opinión, es mejor con un XSL. Es un lenguaje diseñado para generar datos (incluido el formato HTML) a partir de XML.
__________________
Grupos de Música
Pop Music Stars
  #4 (permalink)  
Antiguo 22/07/2008, 04:45
Usuario no validado
 
Fecha de Ingreso: marzo-2004
Mensajes: 349
Antigüedad: 20 años
Puntos: 0
Respuesta: Convertir XML a HTML con PHP, problema con parser

Hola,

Cita:
¿Qué es lo que no te sale bien? ¿Te sale algo, aunque sea mal? ¿Te salen errores? ¿No te sale nada?
Errores de codificación que supongo pueden resolverse poniendo algo en la cabecera, los acentos salen terribles. En lo demás no interpreta algunos campos.

Eso de XSL me confunde, voy a buscar a ver qué encuentro.
  #5 (permalink)  
Antiguo 22/07/2008, 04:54
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 18 años, 11 meses
Puntos: 6
Respuesta: Convertir XML a HTML con PHP, problema con parser

Cita:
Iniciado por JBRS Ver Mensaje
Hola,

Errores de codificación que supongo pueden resolverse poniendo algo en la cabecera, los acentos salen terribles. En lo demás no interpreta algunos campos.
Juega con el parámetro $encoding de xml_parser_create().

También puedes probar de poner "echos" en las funciones start_element y end_element, para ver cómo trata los elementos XML y como recibe los nombres (mayúscula/minúscula...)

Comprueba también el valor del atributo encoding del <?xml ?>
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 11:37.