Foros del Web » Programando para Internet » PHP »

Como leo un XML

Estas en el tema de Como leo un XML en el foro de PHP en Foros del Web. Hola a todos. Alguien sabe de algún script en PHP que lea XML y lo coloco en un textarea...o alguien sabe los metodos que tiene ...
  #1 (permalink)  
Antiguo 03/08/2005, 21:51
Avatar de wcfenix  
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 168
Antigüedad: 19 años, 7 meses
Puntos: 0
Como leo un XML

Hola a todos. Alguien sabe de algún script en PHP que lea XML y lo coloco en un textarea...o alguien sabe los metodos que tiene PHP para leer XML quiero hacer un pequeño editor de XML y solo tengo la parte de guardar.
Gracias.
__________________
"No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo" - Ley de mosher
Blog [ http://www.tecnoaventuras.com ]
  #2 (permalink)  
Antiguo 04/08/2005, 05:48
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 18 años, 10 meses
Puntos: 0
Tal vez esto te sirva, es un editor de archivos XML hecho en Flash:
http://www.kirupa.com/web/xml/examples/simpleeditor.htm

pienso que con una o dos mejoras seria genial!
  #3 (permalink)  
Antiguo 04/08/2005, 17:16
 
Fecha de Ingreso: julio-2005
Ubicación: Mexicali, B.C.
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Saludos.

PHP maneja metodo SAX el cual maneja el archivo XML como un archivo de texto y metodo DOM maneja el archivo por NODOS ademas de utilizar objetos. Ahi te va un tutorial.

http://www.tomhowells.co.uk/tutorials.php?name=phpmxl
  #4 (permalink)  
Antiguo 04/08/2005, 17:28
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Un artículo tutorial bastante sencillo y en español es el de zonaphp:
http://www.zonaphp.com/articulo7.php

Saludos
  #5 (permalink)  
Antiguo 04/08/2005, 17:34
 
Fecha de Ingreso: julio-2005
Ubicación: Mexicali, B.C.
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
JEJE perdon puse mal la direccion.

http://www.tomhowells.co.uk/tutorials.php?name=phpxml

al final puse "mxl" en vez de "xml"

el tutorial sugerido por jpinedo esta muy bien.
  #6 (permalink)  
Antiguo 05/08/2005, 00:33
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 18 años, 10 meses
Puntos: 0
halguien conoce un buen script que permita editar un XML. Osea uqe con un COMBOBOX seleccionas el nodo y en un campo de texto lo editas ?
  #7 (permalink)  
Antiguo 07/08/2005, 23:29
Avatar de wcfenix  
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 168
Antigüedad: 19 años, 7 meses
Puntos: 0
Gracias. pero...

Hola gracias ya logre hacer que lea mi archivo XML. Pero quiere hacerle unas modificaciones.
Quisiera que por cada parrafo un contador me indique que parrafo estoy.
Al momento de realizarse la lectura del archivo no me reconoce muy bien las tildes. En su lugar inserta codigo extraño
__________________
"No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo" - Ley de mosher
Blog [ http://www.tecnoaventuras.com ]
  #8 (permalink)  
Antiguo 07/08/2005, 23:33
Avatar de wcfenix  
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 168
Antigüedad: 19 años, 7 meses
Puntos: 0
Jejeje...

bueno creo que seria importante que les remita el código fuente...
mi xml es asi.
Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<RIOJA>
<TEMA cod="1" cant="3" par="1"><![CDATA[El desarrollo de tecnologías de la información exige prestar atención URGENTE a su aplicación en las diversas actividades económicas y sociales, dado que están generando la creación de nuevos medios de archivo de la información en soportes como: Diskettes, Discos Duros; Discos Opticos, Cintas Magnéticas, Discos Compactos, DVD.(Digital Video Disco) y Zip Drive (2,4), cuyos contenidos no pueden usarse como medio <b>PROBATORIO</b>, dado que no tienen validez para ningún trámite administrativo ni judicial por <b>no tener</b> <b><i>VALOR LEGAL</i></b>;...]]>
</TEMA>
</RIOJA>
mi PHP es asi:
Código PHP:
// Archivo XML a leer
$file_name 'Rioja.xml';
// Variable auxiliar
$Conta 1;
// funcion handler de inicio
function startElement($parser$name$attrs) {

  
// Que etiqueta estamos viendo
  
switch ($name) {
     case 
'RIOJA':
        
// Elemento principal
        
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">'"\n";
        break;
     case 
'TEMA':
        
// Nodo
        
echo "<tr><td valign=\"top\">Edicion ";
        echo 
"<b>".$Conta."</b>";
        echo 
"</td><td width=\"80%\" align=\"center\">","\n";
        echo 
"<textarea id=\"item1\" name=\"item1\" rows=\"10\" cols=\"100\">";
        
$Conta++;
        break;

  }
}
// funcion handler de cierre
function endElement($parser$name) {
  
// Que etiqueta estamos viendo
  
switch ($name) {
     case 
'RIOJA':
        
// Elemento principal
        
echo '</table>'"\n";
        break;
     case 
'TEMA':
        
// Nodo
        
echo "</textarea>";
        echo 
"\n"'</td></tr>'"\n";
        break;
  }
}

// funcion de lectura
function characterData($parser$value) {
  
// Aplicamos un Trim al texto
  
$text trim($value"\t");
  
$text trim($text"\n");
  
$text trim($text"\r");
  
// mostramos
  
  
echo $text;
  
}

// Creaos una nueva instancia del XML parser
$parser xml_parser_create();
// Seteamos los handler
xml_set_element_handler($parser'startElement''endElement');
xml_set_character_data_handler($parser'characterData');

// Abrimos el archivo XML

if ($file = @fopen($file_name'r')) {
// Revisamos el archivo
  
while ($data fgets($file4096)) {
     
// Si hubo un error al hacer el parseo
     
if (!xml_parse($parser$datafeof($file))) {
        
// Mostramos un mensaje
        
die('<p><b>Error al parsear el XML.</b></p>');
     }
  }
  
// Cerramos el archivo
  
fclose($file);
// El archivo no se pudo abrir
} else {
  
// Mostramos un mensaje de error
  
die('<p>No se pudo abir el archivo <b>'.$file_name.'</b>.</p>');
}

// Liberamos el parser
xml_parser_free($parser); 
al momento de ejecutarla no reconoce mi contador.
una vez mas gracias.
__________________
"No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo" - Ley de mosher
Blog [ http://www.tecnoaventuras.com ]
  #9 (permalink)  
Antiguo 07/08/2005, 23:36
Avatar de wcfenix  
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 168
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por _Lobo_
halguien conoce un buen script que permita editar un XML. Osea uqe con un COMBOBOX seleccionas el nodo y en un campo de texto lo editas ?
Bueno antes de buscar informacion estube buscando un código que hiciera esto. pero no lo halle...este código lee todo el archivo y al fínal guarda todo el archivo. Creo que no hay otra forma. SI lo lograste conseguir te agradeceria mucho que me lo mandes.
__________________
"No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo" - Ley de mosher
Blog [ http://www.tecnoaventuras.com ]
  #10 (permalink)  
Antiguo 08/08/2005, 00:36
Avatar de wcfenix  
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 168
Antigüedad: 19 años, 7 meses
Puntos: 0
Bueno ya logre el efecto contador...pero aún no sé como hacer para que me reconozca las tildes y las eñes.... ayuuuuuuuuuuuuuuuuda
__________________
"No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo" - Ley de mosher
Blog [ http://www.tecnoaventuras.com ]
  #11 (permalink)  
Antiguo 09/08/2005, 01:29
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 18 años, 10 meses
Puntos: 0
Cita:
Iniciado por wcfenix
Bueno antes de buscar informacion estube buscando un código que hiciera esto. pero no lo halle...este código lee todo el archivo y al fínal guarda todo el archivo. Creo que no hay otra forma. SI lo lograste conseguir te agradeceria mucho que me lo mandes.
Bueno la verdad estoy en pañales en PHP pero estoy intentando hacerlo desde Flash sin embargo si encuentro algo en PHP o logro hacerlo en FLash aqui pondre todo lo que necesites.

pd: Si crees que es posible lograr esto desde PHP (editar nodos con un formulario) avisame.

http://bitfluxeditor.org/
http://xopus.com/
http://www.oreillynet.com/pub/wlg/2449
http://www.phpclasses.org/browse/package/1469.html
http://www.ister.org/code/xml22/index.xhtml

GOOGLE

Última edición por _Lobo_; 09/08/2005 a las 03:33
  #12 (permalink)  
Antiguo 09/08/2005, 03:41
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 18 años, 10 meses
Puntos: 0
Ok lo he encontrado!

http://xopus.com/demo/
http://bitfluxeditor.org/

http://sourceforge.net/projects/xmlzarf

Última edición por _Lobo_; 09/08/2005 a las 05:45
  #13 (permalink)  
Antiguo 15/08/2005, 12:08
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 19 años, 2 meses
Puntos: 0
Hola
Yo quiero hacer algo muy similar, pero aun no lo consigo.
Esta es una muestra:

http://percepcionunitaria.org/prueba...a_noticias.php

El archivo xml tiene la siguiente estructura:

<?xml version="1.0" encoding="iso-8859-1" ?>
<noticias>
<noticia titulo="título 1" url="url 1">texto 1</noticia>
<noticia titulo="título 2" url="url 2">texto 2</noticia>
...
<noticia titulo="título 6" url="url 6">texto 6</noticia>
</noticias>

Necesito ayuda, de ahí no paso.

Gracias
  #14 (permalink)  
Antiguo 15/08/2005, 14:33
 
Fecha de Ingreso: mayo-2004
Ubicación: Managua, Nicaragua
Mensajes: 281
Antigüedad: 19 años, 11 meses
Puntos: 0
Para mostrar caracteres especiales y teniendo codificada la información en el xml de la manera utf8_encode, pues al mostrarla utiliza utf8_decode
__________________
Julio Hernández
  #15 (permalink)  
Antiguo 15/08/2005, 14:50
Avatar de wcfenix  
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 168
Antigüedad: 19 años, 7 meses
Puntos: 0
mmm....


es decir....
?
__________________
"No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo" - Ley de mosher
Blog [ http://www.tecnoaventuras.com ]
  #16 (permalink)  
Antiguo 15/08/2005, 15:12
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 19 años, 2 meses
Puntos: 0
Creo que no se entendío.
Quiero hacer un editor de un archivo xml, el cual te recupere la información escrita y por medio de un form modificar los datos o añadir nuevos.
La muestra está ahí, pero no escribe nada, y no recupera bien la información de los nodos !

Help !!! ya llevo una semana con ello y no le hayo.

Código PHP:
<h1>Escribir noticias</h1>
<form name="form1" id="form1" method="post" action="<?=$_SERVER['PHP_SELF'?>">
<?

// fichero con el cuerpo en xml
$file "noticias.xml";
// Acción que hace cuando encuentra la primera etiqueta de un elemento.
function start_element($parser$name$attribs){
    while(list(
$key,$value)=each($attribs))
      switch (
$key) {
        case 
'titulo':
        
$titulo=$value;
?>
<p>Titulo: <input type="text" name="titulo" id="titulo" value="<? echo "$titulo" ?>" /></p>
<?        
        
break;
        case 
'url':
        
$liga=$value;
?>
<p>Url: <input type="text" name="url" id="url" value="<? echo "$liga" ?>" /></p>
<?        
        
break;
    }
}
// Acción para cuando encuentre el final de una etiqueta de un elemento.
function end_element($parser$name){
    }
// Recuperar un dato.
function character_data($parser$data){
    
trim ($data"\r\n");
    if (
$data == "") {
        echo 
"";
        }
    else {
        
$texto=$data;
id="titulo\" value=\"$data\" /></p>";
?>
<p>Noticia: <input type="text" name="noticia" id="noticia" value="<? echo "$data" ?>" /></p>
<?
    
}
}
$xml_parser xml_parser_create('');
xml_parser_set_option($xml_parserXML_OPTION_CASE_FOLDING0);
xml_set_element_handler($xml_parser"start_element""end_element");
xml_set_character_data_handler($xml_parser"character_data");

if(!
file_exists($file))
die(
"\n<p>\"$file\" does not exist.</p>\n</body>\n</html>");

if(!(
$handle fopen($file"r")))
die(
"<p>Cannot open \"$file\".</p>\n</body>\n</html>");

while(
$contents fread($handle4096))
xml_parse($xml_parser$contentsfeof($handle));

fclose($handle);

xml_parser_free($xml_parser); 

if(isset(
$_POST['Submit'])) {
$cont="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\r\n<noticias>\r\n";
$cont.="<noticia titulo=\"$titulo\" url=\"$liga\">$texto</noticia>\r\n";
$cont.="</noticias>";

$abrir=fopen("noticias.xml""w");
fwrite($abrir$cont);
fclose($abrir);
}


?>
  <p><input type="submit" name="Submit" value="Agregar noticias" /></p>
</form>
  #17 (permalink)  
Antiguo 17/08/2005, 01:31
 
Fecha de Ingreso: junio-2005
Mensajes: 111
Antigüedad: 18 años, 10 meses
Puntos: 0
alguna nueva ?
  #18 (permalink)  
Antiguo 17/08/2005, 10:00
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 19 años, 2 meses
Puntos: 0
Ya resolví la cosa a medias, no es el resultado que deseaba, pero necesitaba que esto ya quedara.
http://percepcionunitaria.org/prueba...a_noticias.php <--editor
http://percepcionunitaria.org/pruebas/noticias.swf <--lector para usuario

Pongo el código por si a alguien le interesa y si se apiada de mi ignorancia en programación. La idea era que el texto del xml quedara dentro de los input para ser editado y no fuera, pero no pude conseguirlo.



Código PHP:
<?
// concatenar las noticias
if(isset($_POST['Submit'])){
$cont=utf8_encode("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n<noticias>");
if(empty(
$texto1))
    echo(
"");
    else {
$cont.=utf8_encode("<noticia titulo=\"$titulo1\" url=\"$liga1\">$texto1</noticia>");
}
if(empty(
$texto2))
    echo(
"");
    else {
$cont.=utf8_encode("<noticia titulo=\"$titulo2\" url=\"$liga2\">$texto2</noticia>");
}
if(empty(
$texto3))
    echo(
"");
    else {
$cont.=utf8_encode("<noticia titulo=\"$titulo3\" url=\"$liga3\">$texto3</noticia>");
}
if(empty(
$texto4))
    echo(
"");
    else {
$cont.=utf8_encode("<noticia titulo=\"$titulo4\" url=\"$liga4\">$texto4</noticia>");
}
if(empty(
$texto5))
    echo(
"");
    else {
$cont.=utf8_encode("<noticia titulo=\"$titulo5\" url=\"$liga5\">$texto5</noticia>");
}
if(empty(
$texto6))
    echo(
"");
    else {
$cont.=utf8_encode("<noticia titulo=\"$titulo6\" url=\"$liga6\">$texto6</noticia>");
}
$cont.="</noticias>";

$abrir=fopen("noticias.xml""w");
fwrite($abrir$cont);
fclose($abrir);
}

$file "noticias.xml";
function 
start_element($parser$name$attribs){
    while(list(
$key,$value)=each($attribs))
       switch (
$key) {
        case 
'titulo':
        echo 
utf8_decode("<p><strong>Titulo:</strong> <strong><em>".$value."</em></strong><br />");
        break;
        case 
'url':
        echo 
utf8_decode("<strong>Liga:</strong> ".$value."<br />");
        break;
    }
}
function 
end_element($parser$name){
    }
// Recuperar un dato.
function character_data($parser$data){
    
trim ($data);
    echo 
utf8_decode("<strong>Noticia:</strong> ".$data."</p>");
}
$xml_parser xml_parser_create('');
xml_parser_set_option($xml_parserXML_OPTION_CASE_FOLDING0);
xml_set_element_handler($xml_parser"start_element""end_element");
xml_set_character_data_handler($xml_parser"character_data");

if(!
file_exists($file))
die(
"<p>\"$file\" el archivo no existe, favor de verificar.</p>");

if(!(
$handle fopen($file"r")))
die(
"<p>No se puede abrir el archivo \"$file\".</p>");

while(
$contents fread($handle4096))
xml_parse($xml_parser$contentsfeof($handle));

fclose($handle);

xml_parser_free($xml_parser);

?>
Código HTML:
<h2>Escribir noticias</h2>
<form name="form1" id="form1" method="post" action="<?//=$_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="clave_admin" value="<? echo($_POST['usuario']); ?>">
<input type="hidden" name="nombre" value="<? echo($_POST['nombre']); ?>">
<div class="noticias"> 
	<h2>Noticia 1 </h2>
	<p>T&iacute;tulo: <input type="text" name="titulo1" id="titulo1" /><br />
	Liga: <input type="text" name="liga1" id="liga1" /><br />
	Noticia: <textarea name="texto1" id="texto1" rows="3"></textarea></p>
</div>  
<div class="noticias">
	<h2>Noticia 2 </h2>
	<p>T&iacute;tulo: <input type="text" name="titulo2" id="titulo2" /><br />
	Liga: <input type="text" name="liga2" id="liga2" /><br />
	Noticia: <textarea name="texto2" id="texto2" rows="3"></textarea></p>
</div>  
<div class="noticias">
  <h2>Noticia 3 </h2>
  <p>T&iacute;tulo: <input type="text" name="titulo3" id="titulo3" /><br />
  Liga: <input type="text" name="liga3" id="liga3" /><br />
  Noticia: <textarea name="texto3" id="texto3" rows="3"></textarea></p>
</div>  
<div class="noticias">
  <h2>Noticia 4 </h2>
  <p>T&iacute;tulo: <input type="text" name="titulo4" id="titulo4" /><br />
  Liga: <input type="text" name="liga4" id="liga4" /><br />
  Noticia: <textarea name="texto4" id="texto4" rows="3"></textarea></p>
</div>  
<div class="noticias">
  <h2>Noticia 5 </h2>
  <p>T&iacute;tulo: <input type="text" name="titulo5" id="titulo5" /><br />
  Liga: <input type="text" name="liga5" id="liga5" /><br />
  Noticia: <textarea name="texto5" id="texto5" rows="3"></textarea></p>
</div>  
<div class="noticias">
  <h2>Noticia 6 </h2>
  <p>T&iacute;tulo: <input type="text" name="titulo6" id="titulo6" /><br />
  Liga: <input type="text" name="liga6" id="liga6" /><br />
  Noticia: <textarea name="texto6" id="texto6" rows="3"></textarea></p>
</div>  
  <p><input type="submit" name="Submit" class="boton" value="Agregar noticias" />
  </p>
</form> 
  #19 (permalink)  
Antiguo 21/08/2005, 18:34
Avatar de wcfenix  
Fecha de Ingreso: agosto-2004
Ubicación: Lima
Mensajes: 168
Antigüedad: 19 años, 7 meses
Puntos: 0
Hola gracias a ese detalle del UTF8_encode y decode logré que lea...

yconoclasta porque no pruebas que al cargar tu página haga el barrido del XML y declaras en las funciones start_element y character_data los elementos del formulario.

_Lobo_ La verdad que probe el Xopus y el XML22 pero ninguno me convencio para reemplazar por mi script el primero solo se ejecuta en 127.0.0.1 y peor aún cuando quize usar mi XML no leyo... el segundo nunca cargo ni el demo... facil no entendi bien el readme .
En resumen...prefiero usar mi script.

Me baje un WYSWYG llamado tinyMCE y en su forma simple tenia todo lo que queria Negrita, Cursiva, Subrayada pero cuando lee transforma de <b> a <strong> codigo que al parecer Flash MX no reconoce y no lo coloca en Negritas
Así que mejor hago un tutorial para los encargados en lugar de editar el Tiny..

Bueno chicos gracias....
__________________
"No te preocupes si no funciona bien. Si todo estuviera correcto, serías despedido de tu trabajo" - Ley de mosher
Blog [ http://www.tecnoaventuras.com ]
  #20 (permalink)  
Antiguo 22/08/2005, 13:16
Avatar de ShaqUC  
Fecha de Ingreso: agosto-2005
Ubicación: Estación Central
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Haber no toy muy clarito con el tema....la idea tuya es buscar productos con XML....mira qe yo tengo un codigo para buscar diferentes productos a travéz de Mercado Libre...

Código PHP:
<?
# ID 213525
# En La inea 114 Va este numero "213525" que es nuestro site ID 

//Variable de URL as_categ_id
$id_categ=$HTTP_GET_VARS[as_categ_id];
if (
$HTTP_GET_VARS[as_categ_id]=="") { $id_categ="1000"; }
//Variable de URL buscar
$buscar=$HTTP_GET_VARS[buscar];
//Variable de URL pais (MLA,MLB,etc)
$pais=strtoupper($HTTP_GET_VARS[pais]);

//Elije el dominio de MercadoLibre
switch ($pais) {
case 
"MLA":
    
$dominio="www.mercadolibre.com.ar";
    break;
case 
"MLB":
    
$dominio="www.mercadolivre.com.br";
    break;
case 
"MLM":
    
$dominio="www.mercadolibre.com.mx";
    break;
case 
"MLC":
    
$dominio="www.mercadolibre.cl";
    break;
case 
"MLV":
    
$dominio="www.mercadolibre.com.ve";
    break;
case 
"MCO":
    
$dominio="www.mercadolibre.com.co";
    break;
case 
"MLU":
    
$dominio="www.mercadolibre.com.uy";
    break;
case 
"MEC":
    
$dominio="www.mercadolibre.com.ec";
    break;
case 
"MLP":
    
$dominio="www.mercadolibre.com.pe";
    break;
default:
    
$dominio="www.mercadolibre.cl";
}
?>
<html>
<head>
<title>Articulos en Mercadolibre</title>
<link href="http://www.ceatolei.cl/estiloml.css" rel="stylesheet" type="text/css">
</head>
<body>
<dl>
  
  <table width="120" heigh ="600" border="0" cellpadding="0" cellspacing="0">
    <?php

$insideitem 
false;
$item = array();
$tag "";
$title "";
$description "";
$link "";
$price "";
$image="";
$currency"";

function 
startElement($parser$name$attrs) {
    global 
$insideitem$tag$title$description$link$price$image$currency$item;
    if (
$insideitem) {
        
$tag $name;
    } elseif (
$name == "ITEM") {
        
$insideitem true;
    }
}

function 
endElement($parser$name) {
    global 
$insideitem$tag$title$description$link$price$image$currency$item$attrs;
    if (
$name == "ITEM") {
        echo 
"<tr>";
        echo 
"<td><div align=\"center\"><img src=\"".$image."\" height=\"59\"></div>";
        echo 
"<div align=\"center\"><a href=\"".$link."\" target=\"_blank\">".substr($title,0,55)."</a></div><div align=\"center\"><font class=\"precio\">".$currency.$price."</font></div></td>";
        echo 
"</tr>";
        echo 
"<tr>";
        echo 
"<td height=\"1\" bgcolor=\"#000000\"></td>";
        echo 
"</tr>";
        
$title "";
        
$description "";
        
$link "";
        
$price "";
        
$item "";
        
$image "";
        
$currency "";
        
$insideitem false;
    }
}

function 
characterData($parser$data) {
    global 
$insideitem$tag$title$description$link$price$image$currency$item$attrs;
    if (
$insideitem) {
    switch (
$tag) {
        case 
"ITEM":
        
$id .= $item['ID'];
        break;
        case 
"TITLE":
        
$title .= $data;
        break;
        case 
"DESCRIPTION":
        
$description .= $data;
        break;
        case 
"LINK":
        
$link .= str_replace("XXX","213525",$data); 
        break;
        case 
"PRICE":
        
$price .= $data;
        break;
        case 
"IMAGE_URL":
        
$image .= $data;
        break;
        case 
"CURRENCY":
        
$currency .= $data;
        break;        
    }
    }
}

//========================================================
// Esta Sentencia Nos Muestra Los Articulos Mas Vendidos  
//========================================================

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parser"startElement""endElement");
xml_set_character_data_handler($xml_parser"characterData");
$fp fopen("http://".$dominio."/jm/searchXml?as_categ_id=".$id_categ."&as_order_id=MAS_OFERTADOS&as_filtro_id=PRECIO_FIJO&as_display_type=G&as_qshow=2","r")
    or die(
"Error reading data.");
while (
$data fread($fp4096))
    
xml_parse($xml_parser$datafeof($fp))
        or 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($fp);
xml_parser_free($xml_parser);
?>
  </table>
</dl>
</body>
</html>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:09.