Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/03/2008, 04:16
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Re: AYUDA PLIS, JAVA y XML Y RSS

Prueba con este código:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Example</title>
</head>
<body>

<script>

var rssTitle;
var rssBody;
var items;

function Replace(totalValue,oldValue,newValue) {
  while(totalValue.indexOf(oldValue) > -1)
    totalValue=totalValue.replace(oldValue,newValue);
  return totalValue;
}

/* Aqui Traigo los Nodos del XML
(Parametros) TagNames:'XML Elemento' nodo:'Numero de fila de elemento' */

function getNode(TagName, node) {
  var currentNode = (node == null) ? xmlDoc.getElementsByTagName(TagName) :
  items[node].getElementsByTagName(TagName);
  if(currentNode.length > 0)
    return currentNode[0].firstChild.nodeValue;
}
/* Cargando documento XML
(Parametros) rssFeed:'Archivo RSS' Body:'Layer para el cuerpo rss' Titulo:'Layer para el titulo rss' */

function ReadRSS(rssFeed, Body, Title) {
  rssTitle = document.getElementById(Title);
  rssBody = document.getElementById(Body);
  try {
    if (document.all) {
      var errorHappendHere = "Check Browser and security settings";
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    } else {
      var errorHappendHere = "Aparentemente no se puede leer remotamente el xml via firefox, copiar el archivo en el servidor";
      xmlDoc = document.implementation.createDocument("","",null) ;
    }

    xmlDoc.async=false;
    xmlDoc.load(rssFeed);

    items = xmlDoc.getElementsByTagName('cliente');
    SetRSSTemplates();
  } catch(e) {
    rssTitle.innerHTML = 'Error occured';
    rssBody.innerHTML = 'Thrown Error:'+e.message+"<br/>Note: "+errorHappendHere;
  }
}

/* setiando el template de html */

function SetRSSTemplates() {
  if (rssBody) {
    var buffer = "";
    for(var i=0; i< items.length; i++) {
      if (document.all) {
        var output = Replace(rssBody.innerHTML,"(::Link::)","javascript :mostrar('"+getNode('titulo',i)+"','"+getNode('image',i)+"','"+getNode('url',i)+"')");
      } else {
        var output = Replace(rssBody.innerHTML,"%28::Link::%29","javascript:mostrar('"+getNode('url',i)+"')");
      }
      output = Replace(output,"(::Title::)",getNode('titulo',i));
      output = Replace(output,"(::Description::)",getNode('description',i));
      output = Replace(output,"(::url::)",getNode('url',i));
      output = Replace(output,"(::image::)",getNode('image',i));
      buffer += output;
    }
    rssBody.innerHTML = buffer;
  }
  if (rssTitle) {
    var output = Replace(rssTitle.innerHTML,"(::Title::)",getNode('titulo'));
    output = Replace(output,"(::Description::)",getNode('description'));
    output = Replace(output,"(::image::)",getNode('image'));
    rssTitle.innerHTML = output;
  }
}

function mostrar(titulo,imagen) {
  var v=window.open('');
  v.document.open();
  v.document.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/></head><body><img src="'+imagen+'" width="100" hspace="5" vspace="5" align="left" /></body></html>');
  v.document.close();
}

window.onload = function() {
  ReadRSS('cerrajeriaPruebas.xml','scrollProductos', 'rssTitleTemplate');
}
</script>
<span id="rssTitleTemplate">...</span>
<table width="613" height="314" border="0" align="left" cellpadding="0" cellspacing="0" id="contenidoProductos">
  <tr>
    <td width="172" height="31" align="center" valign="top" bgcolor="#D1D9DF"><img src="images/cerrajeria.jpg" name="cerrajeria" width="121" height="121" hspace="20" vspace="20" style="border: 1px solid #FFFFFF;" align="top" id="cerrajeria"></td>
    <td width="10">&nbsp;</td>
    <td width="431" valign="middle" bgcolor="#D1D9DF"><div id="scrollProductos" style=" width:431px; height:314px; overflow: scroll; left: 573px; top: 233px; visibility: visible; z-index: 3;"> <br/>
        <img src="(::image::)"width="20" hspace="5" vspace="5" align="right" class="imagenProductos" /> //este es el icono de descarga de las tarifas. <b class="titulo_productos">(::Title::)</b> //aqui tendría que ir la imagen del XML <br/>
        <b class="descripcion_productos">(::Description::)</b> <br/>
        <a href="(::Link::)" class="descripcion_productos"><b>(::url::)</b></a> <br/>
      </div></td>
  </tr>
</table>
</body>
</html>
Lo he probado con IE7 y funciona adecuadamente, funciona en tu PC como lo necesitas ?

Saludos,

NOTA:

Esta no es la manera más adecuada de realizar este procedimiento, para utilizar XML dentro de una plantilla (X)HTML se utiliza XSLT o Data Islands + DHTML XML Data Sources.

Desde el momento que escribistes new ActiveXObject("Microsoft.XMLDOM"); en el javascript, dejaste fuera del juego a FireFox y a los IE mas viejos que el 5.0; por lo tanto no hay problema que uses Microsoft DHTML Data Sources.

Prefieres ver la solución con Data Islands + DHTML DS ?