Levantar DATOS, help me!

Hola, la verdad es que soy nuevo en esto del XML y necesito ayuda. Ya estuve leyendo algo en varias webs y alguna idea de como manejar los datos tengo, pero el problema que tengo es el siguiente:
Para mi trabajo, una empresa me envía datos de ventas. La forma de envio es una url que me muestra un código XML, la url es del tipo: http://www.miweb.com/datos.php?fecha=20-05-2005
Y muestra algo así:
<data>
- <row id="1">
<statsdate>2005-05-20</statsdate>
<profile>Carlitos</profileid>
<realclicks>25</realclicks>
<compras>2</compras>
</row>
</data>
Concretamente ¿cómo paso lo que me muestra el explorer a un array o algo en mi código php? Muchísimas gracias.

1 respuesta

Respuesta
1
Este script, parsea la salida de un script que devuelve la salida en XML.
Depende luego de tus campos, pero espero que te sea de ayuda.
El script hace uso de algunas funciones que me he hecho yo. Te pego el código de las funciones también.
Si no entiendes el código, te ayudo con el.
---
Aquí esta el código:
$depth = array();
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
$dominio = urlencode(trim(htmlspecialchars(strip_tags(addslashes($dominio)))));
if ( !strcmp($dominio,"") ){ $error = true; $num_error = 1; }
if ( !strcmp($tld_whois,"") ){ $error = true; $num_error = 2; }
if ( !strcmp($dominio,"") && !strcmp($tld_whois,"") ){ $error = true; $num_error = -1; }
$scriptQuery = "?domain=".$dominio."&tld=".$tld_whois;
$scriptQuery = ereg_replace(" ","%20",$scriptQuery);
if ( !$error ) {
$link = fopen("http://localhost/cgi-bin/servytec.es/srs/xml.whois.pl".$scriptQuery,"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:
---
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;
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas