Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/09/2005, 02:54
coche
 
Fecha de Ingreso: julio-2005
Ubicación: Mexicali, B.C.
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
A ver si te puedo ayudar

-Tienes un archivo XML y en html lo puedes ver bien.
-Cuando lo manipulas en php te falta información.

Lo mas adecuado es utilizar las funciones del metodo SAX de parser de xml
ahi te va una aplicacion que utilizo en mi sitio. Tengo un archivo XML y lo analizo en php

<html>
<head>
<title>Boletines</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="tabla_concentra.css" title="Default">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="638" height="100%">
<tr>
<td height="43" bgcolor="#405D79"><div style="font-family:arial,helvetica; font-size:12pt; color:white; font-weight:600;">Para Tu Salud</div></td>
</tr>
<tr><td>
<?php
$file = "lista_mp.xml";
$tag = "";

function startElement($parser, $name, $attrs)
{
// echo "uno";
global $tag;
$tag = $name;
switch($name)
{
case "boletines": echo "<table width=\"450\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"naranja-marco-tabla\">";break;
case "num":break;
case "boletin":echo "<tr><td><div style=\"margin-top:3px; margin-bottom:3px; text-align:center;\">"; break;
case "imagen":{
echo "<table width=\"95%\" class=\"contorno-articulo\" style=\"height:auto; margin: auto;\"><tr>";
echo " <td width=\"60\" rowspan=\"2\"><img src=\"";
}; break;
case "titulo": echo "<td width=\"366\" height=\"33\"><div class=\"titulo-articulo\">"; break;
case "ruta": echo "<td width=\"88\"><a href=\""; break;
case "intro": echo "<td height=\"37\" colspan=\"2\"><div class=\"contenido-articulo\">"; break;
case "mes":break;
case "ano":break;
case "area":break;
}


}

function endElement($parser, $name)
{ switch($name)
{
case "boletines": echo "</table>";break;
case "num": echo "";break;
case "boletin":echo "</div></td></tr>"; break;
case "imagen": echo "\" width=\"40\"></td>"; break;
case "titulo": echo "</div></td>"; break;
case "ruta": echo "\" target=\"_blank\" class=\"enlace\" >Ver Mas...</a></td></tr><tr> "; break;
case "intro":{

echo "</div></td>";
echo "</tr></table>";
};break;
case "mes":break;
case "ano":break;
case "area":break;
}
// echo "tres";


}

function characterData($parser, $value)
{
global $tag;
switch($tag)
{
case "boletines": echo $value;break;
case "num": break;
case "boletin":echo $value; break;
case "imagen": echo $value; break;
case "titulo": echo $value; break;
case "ruta": echo $value; break;
case "intro": echo $value; break;
case "mes":break;
case "ano":break;
case "area":break;
}


// echo "dos";


}

$simpleparser = xml_parser_create();
xml_parser_set_option($simpleparser, XML_OPTION_CASE_FOLDING,0);

xml_set_element_handler($simpleparser, "startElement", "endElement");
xml_set_character_data_handler($simpleparser, "characterData");

if(!($fp = fopen($file, "r") ))
{
die("Error al abrir entrada XML: Enviar informe a [email protected]");
}

while($data = fread( $fp, filesize($file)))
{
if( !xml_parse($simpleparser, $data, feof($fp)))
{
die( xml_error_string(xml_get_error_code($simpleparser) ) );
}
}
xml_parser_free($simpleparser)
?>
</td></tr>
</table>
</body>
</html>


///La funcion function characterData($parser, $value) es la que maneja la informacion