Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/04/2005, 07:44
briandress
 
Fecha de Ingreso: abril-2005
Mensajes: 5
Antigüedad: 19 años, 1 mes
Puntos: 0
Me parece mas sencillo parsear de esta manera:

------------------------------------------------
<?php

$etiquetaActual="";

function ComienzoElemento($parser,$name,$attribs)
{
global $etiquetaActual, $currentAttribs;
$etiquetaActual=$name;
switch($name)
{ case "ID":
echo '<tr><td><b>Id:</b> ';
break;
case "TITLE":
echo '<tr><td><b>Title:</b> ';
break;
default:
echo "no hay mas etiquetas";
}
}

function FinalElemento($parser,$name)
{
global $etiquetaActual;
switch ($name)
{
case "ID":
echo "</td></tr>";
break;
case "TITLE":
echo "</td></tr>";
break;

default:
echo "error en formato ficha";
}
$etiquetaActual="";
}

function Datos($parser,$data)
{
global $etiquetaActual;
switch ($etiquetaActual)
{
case "ID":
echo $data;
break;
case "TITLE":
echo $data;
break;
}
}

$file = "ejemplo.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)));
}
}
?>