
19/04/2005, 07:44
|
| | Fecha de Ingreso: abril-2005
Mensajes: 5
Antigüedad: 20 años 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)));
}
}
?> |