Ayuda de nuevo

¿Hola idmoreno, como estás? La verdad que me ha servido de mucho tu ayuda, muchísimas gracias. He logrado que leyera el archivo, que era lo principal. A ver si me puedes ayudar a resolver esto ahora:
Yo le hice algunas modificaciones a tu código y le agregue un par de funciones (startElement, endElement). Solo tengo el problema de que me muestra las etiquetas y no el dato. Te pego el code que utilicé para ver si tu ves el error. Un saludo y muchas gracias nuevamente.
$depth = array();
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
$url = "http://www.dominio.com/get_data.php?startdate=2005-06-06&enddate=2005-06-06";
$link = fopen($url,"r");
while ( $data = fread($link,4096) ) {
$resultadoXML = makeXMLTree($data);
if (!xml_parse($xml_parser, $data, feof($link))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
fclose($link);
xml_parser_free($xml_parser);
//Aqui, las funciones:
$currentTag = "";
$currentAttribs = "";
function startElement($parser, $name, $attribs)
{
global $currentTag, $currentAttribs;
$currentTag = $name;
$currentAttribs = $attribs;
switch ($name) {
default:
echo("<b>&lt$name&gt</b><br>");
break;
}
}
function endElement($parser, $name)
{
global $currentTag;
switch ($name) {
default:
echo("<br><b>&lt/$name&gt</b><br><br>");
break;
}
$currentTag = "";
$currentAttribs = "";
}
///////////////crea la planilla
function makeXMLTree($data)
{
$ret = array();
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$data,$values,$tags);
xml_parser_free($parser);
$hash_stack = array();
foreach ($values as $key => $val)
{
switch ($val['type'])
{
case 'open':
array_push($hash_stack, $val['tag']);
break;
case 'close':
array_pop($hash_stack);
break;
case 'complete':
array_push($hash_stack, $val['tag']);
// uncomment to see what this function is doing
// echo("\$ret[" . Implode($hash_stack, "][") . "] = '{$val[value]}';\n");
eval("\$ret[" . Implode($hash_stack, "][") . "] = '{$val[value]}';");
array_pop($hash_stack);
break;
}
}
return $ret;
}
---------------------------
me devuelve:
<DATA>
<ROW>
<STATSDATE>
</STATSDATE>
<REALCLICKS>
</REALCLICKS>
<FDCOUNT>
</FDCOUNT>
</ROW>
<ROW>
<STATSDATE>
</STATSDATE>
<REALCLICKS>
</REALCLICKS>
<FDCOUNT>
</FDCOUNT>
</ROW>
</DATA>

1 Respuesta

Respuesta
1
<%=Texto%>
Me alegro de haberte ayudado.
Los datos del archivo XML se encuentran en $resultadoXML.
Esto, es un array, por lo que haciendo un:
echo "<pre>";
print_r($resultadoXML);
echo "</pre>";
Puedes ver todos los datos devueltos en forma de array.
Despues, muestralo así:
echo $resultadoXML['DATA']['ROW']['STATSDATE'];
echo $resultadoXML['DATA']['ROW']['REALCLICKS'];
etc... etc... etc...
Un saludo, y espero haberte ayudado de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas