18/03/2008, 04:16
|
| | | Fecha de Ingreso: enero-2008 Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses Puntos: 260 | |
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"> </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 ? |