Foros del Web » Programación para mayores de 30 ;) » Java »

AYUDA PLIS, JAVA y XML Y RSS

Estas en el tema de AYUDA PLIS, JAVA y XML Y RSS en el foro de Java en Foros del Web. Hola, despues de darle mil vueltas y sin resultado necesito de vuestra ayuda (urgetisimo claro, como siempre ..) Estoy trabajando en una lista de productos ...
  #1 (permalink)  
Antiguo 17/03/2008, 03:40
 
Fecha de Ingreso: septiembre-2003
Mensajes: 10
Antigüedad: 21 años, 2 meses
Puntos: 0
AYUDA PLIS, JAVA y XML Y RSS

Hola, despues de darle mil vueltas y sin resultado necesito de vuestra ayuda (urgetisimo claro, como siempre ..) Estoy trabajando en una lista de productos dinamica, que llama a un xml ( o un rss) . La lista tiene un titulo , una descirpcion, una imagen, un link a la web del cliente, y un icono PDF que al pinchar descarga las tarifas de ese cliente en particular. Tengo el html y un xml. Me he basado en un post que habia aqui y que se parecia muchisimo a lo que necesito. Pero tengo que adaptarlo y me encuentro con mil problemas.

Cuando se abre la pagina, necesito que ademas del titulo y la descripción, se muestre la imagen. Tambien que cuando uno clike en el link a la web del cliente se abra ese link ( ahora se muestra la imagen porque asi estaba en el ejemplo que me descargue). Y la ultima cosita, ¿como puedo hacer que el icono PDF sea un link a la descarga de la tarifa correspondiente? Vaya rollo, ya lo sé pero les agradecería muchisimo la ayuda, estoy en un aprieto de la ostia. MIL MIL GRACIAS.

Aqui va el xml:

<?xml version="1.0" standalone="yes"?><rss version="2.0">


<channel>
<noticias>

<cliente>
<titulo>cliente1</titulo>
<description>Quisque laoreet
lorem eget libero commodo porta.
Nunc in odio sed est tempus hendrerit.
Puntos de venta</description>
<url>http://www.cliente1.com</url>
<link>#</link>
<image>imagen1.jpg</image>
<image>tarifas1.pdf</tarifas>
</cliente>


<cliente>
<titulo>cliente2</titulo>
<description>Quisque laoreet
lorem eget libero commodo porta.
Nunc in odio sed est tempus hendrerit.
Puntos de venta</description>
<url>http://www.cliente2.com</url>
<link>#</link>
<image>imagen2.jpg</image>
<image>tarifas2.pdf</tarifas>
</cliente>

<cliente>
<titulo>cliente3</titulo>
<description>Quisque laoreet
lorem eget libero commodo porta.
Nunc in odio sed est tempus hendrerit.
Puntos de venta</description>
<url>http://www.cliente3.com</url>
<link>#</link>
<image>imagen3.jpg</image>
<image>tarifas3.pdf</tarifas>
</cliente>


</noticias>


</channel>
</rss>

y aqui el codigo HTML:

<script language="JavaScript" type="text/JavaScript"><!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>

<script>
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('ima ge',i)+"','"+getNode('url',i)+"')");
}
else
{
var output = Replace(rssBody.innerHTML,"%28::Link::%29","javasc ript:mostrar('"+getNode('url',i)+"')");
}
output = Replace(output,"(::Title::)",getNode('titulo',i));
output = Replace(output,"(::Description::)",getNode('descri ption',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(' title'));
output = Replace(output,"(::Description::)",getNode('descri ption'));
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>
<link href="css/template_cssProductos.css" rel="stylesheet" type="text/css">


<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="ICONOPDF.jpg"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>

</html>

mil gracias otra vez
  #2 (permalink)  
Antiguo 17/03/2008, 15:39
 
Fecha de Ingreso: septiembre-2003
Mensajes: 10
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: AYUDA PLIS, JAVA y XML Y RSS

plis plis plis...?
  #3 (permalink)  
Antiguo 17/03/2008, 21:36
Avatar de 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

Hola, puedes comenzar por corregir el Web Service
y el "Well Formed" XML.

<cliente>
<titulo>cliente1</titulo>
<description>Quisque laoreet
lorem eget libero commodo porta.
Nunc in odio sed est tempus hendrerit.
Puntos de venta</description>
<url>http://www.cliente1.com</url>
<link>#</link>
<image>imagen1.jpg</image>
<image>tarifas1.pdf</tarifas>
</cliente>

Saludos,
  #4 (permalink)  
Antiguo 18/03/2008, 03:21
 
Fecha de Ingreso: septiembre-2003
Mensajes: 10
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: AYUDA PLIS, JAVA y XML Y RSS

si, si, gracias, ya lo habia notado, pero es lo unico que he podido entender. MIl gracias, ahora realmente necesito saber como llamar la imagen. He probado mil formulas y nada de nada, porfito? grazie otra vez.
  #5 (permalink)  
Antiguo 18/03/2008, 04:16
Avatar de 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 ?
  #6 (permalink)  
Antiguo 18/03/2008, 07:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 10
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: AYUDA PLIS, JAVA y XML Y RSS

Muchisisimas gracias, antes de probarlo queria darte las gracias. La verdad, la super verdad, es que hasta hoy había sido una friki mas del flash, mas bien de AS. Y había diseñado sitios enteros con AS. Hacer esto con as no me era ni un problema pero evidentemente hoy aparece un cliente que la necesita en HTML y no tengo idea de los lenguajes extras que se necesitan. Trabajo con MAC y voy probando con Firefox. Por ahi a veces pruebo en el portatil que tiene el vista. Pero ya veo que cualquier puntito es un drama. Que se ve bien ahi, pero no aqui ect ect. Y no controlo mucho. Porfa, cualquier ayuda o guideline ma salvaría muchisimo. Voy a probar lo que me has enviado pero si igual será un drama con IE (en España es el navegador principal de la mayoría que usa PC), me encantaría que me ayudases a pulirlo o arreglaro o tirarlo todo y empezar again.
gracias mil
Salutix
  #7 (permalink)  
Antiguo 18/03/2008, 09:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 10
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: AYUDA PLIS, JAVA y XML Y RSS

hola ,
Lo he estado probando en FF, no tengo explorer en el mac y lamentablemente sigue sin aparecer la imagen en la lista que se crea desde el xml. Tienes FF? podrias probarlo ? es que no sé si es el código o es el navegador que no lee la imagen (todo lo demas sigue apareciendo bien) mil gracias:
  #8 (permalink)  
Antiguo 18/03/2008, 11:56
Avatar de 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

Ok, creo que para que funcione en FF, cambia el siguiente código:

Código:
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('imagen',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));
      if (document.all) {
        output = Replace(output,"(::Imagen::)",getNode('imagen',i));
      } else {
        output = Replace(output,"%28::Imagen::%29",getNode('imagen',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,"(::Imagen::)",getNode('imagen'));
    if (document.all) {
      output = Replace(output,"(::Imagen::)",getNode('imagen'));
    } else {
      output = Replace(output,"%28::Imagen::%29",getNode('imagen'));
    }
    rssTitle.innerHTML = output;
  }
}
Funciona ?
Por cierto ... quien hizo el RSS feed ? Lo puedes modificar ?

Saludos,

Última edición por HackmanC; 18/03/2008 a las 12:02 Razón: rss
  #9 (permalink)  
Antiguo 18/03/2008, 12:32
 
Fecha de Ingreso: septiembre-2003
Mensajes: 10
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: AYUDA PLIS, JAVA y XML Y RSS

gracias! el rss creo que tambien salio de este foro, pero no se muy bien a que te refieres. Habia un archivo rss y el codigo html. Pronto me di cuenta que el rss estaba escrito dentro del html y me olvide del archivo rss. No creo que lo este usando o llamando. O sea todo esta metido en el html. Ua cosa, mientra sesperaba tu respuesta, comenze a intentar otra manera y ahora sí lee la imagen pero claro, ni idea como darle formato a los items.
Te lo dejo aqui, para que lo mires o para que te rias. No sé bien si seguir trabajando con el ejemplo que hemos estado mirando o con este nuevo. Cual será mas problematico? Es que me he quedado preocupada con lo que haz dicho respecto al DOM. No tengo a mano la posibilidad de probar en explorer pero seguro que dramas habrán. Mira es esto:


<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;">


<script src="js/prototype.js"/></script>
<script src="js/ObjTree.js"></script>

<script type="text/javascript">
var xmlDoc=null;
if (window.ActiveXObject)
{// code for IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
else if (document.implementation.createDocument)
{// code for Mozilla, Firefox, Opera, etc.
xmlDoc=document.implementation.createDocument(""," ",null);
}
else
{
alert('Your browser cannot handle this script');
}
if (xmlDoc!=null)
{
xmlDoc.async=false;
xmlDoc.load("cerrajeriaPruebas.xml");

var x=xmlDoc.getElementsByTagName("cliente");

document.write("<table border='0'>");

for (var i=0;i<x.length;i++)
{
document.write("<tr>");
document.write("<td>");
document.write(x[i].getElementsByTagName("titulo")[0].childNodes[0].nodeValue);

document.write("<td>");


document.write( "<img src='" + x[i].getElementsByTagName("image")[0].childNodes[0].nodeValue + "'></img>");



document.write("</td>");
document.write("</td>");
document.write("</tr>");


document.write("<td>");
document.write(x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue);

document.write("<td>");

document.write('<a href='+x[i].getElementsByTagName("url")[0].childNodes[0].nodeValue)
document.write(">");

document.write(x[i].getElementsByTagName("url")[0].childNodes[0].nodeValue)

document.write("</td>");
document.write("</td>");
document.write("</tr>");



}
document.write("</table>");
}
</script>

<script language="JScript" src="xmlLoader.js"></script>




</div>
</td>
</tr>
</table>


Como ves, este va creando celdas para cada item ( que no sé como darles el formato que le habia dado al ejemplo anterior) por lo que el desorden es heavy. vaya confusion, mil gracias, porfa , espero tus consejos. Jimena
  #10 (permalink)  
Antiguo 18/03/2008, 14:41
Avatar de 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

Hola, Jimena ...

Te voy a proponer una solución que funciona y es mucho más fácil. Espero que te sirva, aunque de otra forma, tendrías que reescribir el código que pusiste. (Si no te es funcional entonces, voy a intentar ayudarte escribiendo un Objeto que sea fácil de manipular, pero tal ves hasta el día de mañana, si algiuen más no lo ha hecho.)

El RSS Feed en XML tiene un cambio, por eso te preguntaba si podías cambiar el RSS. Le tienes que agregar la línea que está en negrilla (para que funcione en FireFox y Opera). Observa que el nombre del archivo es data.xml. Es un básico "well-formed" XML.

Archivo : data.xml
Código:
<?xml version="1.0" standalone="yes"?>
      <?xml-stylesheet type="text/xsl" href="data.xsl"?>
      <rss version="2.0">
        <channel>
          <noticias>
            <cliente>
              <titulo>
                cliente1
              </titulo>
              <description>
                Quisque laoreet
                lorem eget libero commodo porta.
                Nunc in odio sed est tempus hendrerit.
                Puntos de venta
              </description>
              <url>
                http://www.cliente1.com
              </url>
              <link>
              #
              </link>
              <imagen>
                imagen1.jpg
              </imagen>
              <tarifas>
                tarifas1.pdf
              </tarifas>
            </cliente>
            <cliente>
              <titulo>
                cliente2
              </titulo>
              <description>
                Quisque laoreet
                lorem eget libero commodo porta.
                Nunc in odio sed est tempus hendrerit.
                Puntos de venta
              </description>
              <url>
                http://www.cliente2.com
              </url>
              <link>
              #
              </link>
              <imagen>
                imagen2.jpg
              </imagen>
              <tarifas>
                tarifas2.pdf
              </tarifas>
            </cliente>
            <cliente>
              <titulo>
                cliente3
              </titulo>
              <description>
                Quisque laoreet
                lorem eget libero commodo porta.
                Nunc in odio sed est tempus hendrerit.
                Puntos de venta
              </description>
              <url>
                http://www.cliente3.com
              </url>
              <link>
              #
              </link>
              <imagen>
                imagen3.jpg
              </imagen>
              <tarifas>
                tarifas3.pdf
              </tarifas>
            </cliente>
          </noticias>
        </channel>
      </rss>
Sigue...
  #11 (permalink)  
Antiguo 18/03/2008, 14:41
Avatar de 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

Tienes que agregar a tu solución un archivo de transformación. En este documento es donde vas a crear tu HTML desde el XML.

Si de das cuenta, es mucho más fácil de darle mantenimiento, por que es HTML mezclado con XML, y puedes cambiarlo a tu gusto.

Observa detenidamente el ejemplo del "a href" y del "img", e interpreta como es que funciona.

El siguiente es una plantilla de transformación en HTML basada en XLST.

Archivo : data.xsl
Código:
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="html"/>
  <xsl:template match="/">
    <html>
    <head>
    <title>HackmanGT XML / XSLT Example</title>
    </head>
    <body>
    <table>
      <xsl:for-each select="rss/channel/noticias/cliente">
        <tr>
          <td bgcolor="#0099FF"><xsl:value-of select="titulo"/></td>
          <td bgcolor="#0099FF"><xsl:value-of select="description"/></td>
          <td bgcolor="#0099FF"><xsl:value-of select="url"/></td>
          <td bgcolor="#0099FF"><a>
            <xsl:attribute name="href"><xsl:value-of select="link"/></xsl:attribute>
            <xsl:value-of select="link"/></a></td>
          <td bgcolor="#0099FF"><img>
            <xsl:attribute name="src"><xsl:value-of select="imagen"/></xsl:attribute>
            <xsl:value-of select="imagen"/></img></td>
          <td bgcolor="#0099FF"><xsl:value-of select="tarifas"/></td>
        </tr>
      </xsl:for-each>
    </table>
    </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
Sigue...
  #12 (permalink)  
Antiguo 18/03/2008, 14:42
Avatar de 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

Por último necesitas el (x)HTML para ver el documento.
Cuando sea Internet Explorer va a usar la transformación interna de IE 5, 6, 7.
Cuando sea FireFox va a utilizar un IFrame para mostar el XML y transformarlo con el XSLT.

Archivo : index.html
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>HackmanGT XML / XSLT Example</title>
</head>

<xml id="xmlData" src="data.xml" />
<xml id="xmlStyle" src="data.xsl" />

<body>
<div id="xslTarget"></div>
</body>

<script type="text/javascript" language="javascript">
if (document.all) {
	// Debería ser un mejor método para detectar el navegador.
	// Internet Explorer 7.0.5730.13
	xslTarget.innerHTML = xmlData.transformNode(xmlStyle.XMLDocument);
} else {
	// FireFox 2.0.0.12
	var xslTargetObject = document.getElementById("xslTarget");
	xslTargetObject.innerHTML = "<iframe id=\"xslFrame\" src=\"data.xml\"></iframe>";
}
</script>
</html>
Yo creo que es una solución más limpia y más eficiente, usando las herramientas que te proveen los 2 navegadores.

Lo he probado en Internet Explorer 6 y 7. FireFox 2 (FireFox 1.5 y Iceweasel en Linux) y funciona "bien". Queda a tu criterio si deseas esta solución o seguir intentando con JavaScript y XMLDOM.

Saludos,

Última edición por HackmanC; 19/03/2008 a las 16:15 Razón: eliminar url ... ya cambié el site en geocities ... :)
  #13 (permalink)  
Antiguo 18/03/2008, 17:39
Avatar de 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

Hola, Jimena,
Esta sería la versión basada en tu perspectiva del JavaScript.
Espero que haya sido de ayuda.

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>HackmanGT DOM XML Example</title>
</head>
<body>
<script language="javascript" type="text/javascript">
<!--

/**
 * xmlData
 * Representa un documento XML.
 */
function xmlData() {
	this.loadXML = function() {
		try {
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		} catch (ex) {
			try {
				xmlDoc = document.implementation.createDocument("", "", null);
			} catch (ex) {
				return null;
			}
		}
		try {
			xmlDoc.async = false;
			xmlDoc.load("data.xml");
		} catch (ex) {
			return null;
		}
		return xmlDoc;
	}
}

/**
 * xmlData
 * Representa una plantilla de XML.
 */
function xmlNotAParser() {
	this.NotParseXML = function(data) {
		var o = "";
		var c = data.getElementsByTagName("cliente");

		o = '<table width="614" height="314" border="0" align="left" cellpadding="0" cellspacing="0" id="contenidoProductos">';
		
		for (var i = 0; i < c.length; i++) {
o += '' +
'  <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="' + data.getElementsByTagName("imagen")[i].childNodes[0].nodeValue + '"width="20" hspace="5" vspace="5" align="right" class="imagenProductos" /><b class="titulo_productos">' + data.getElementsByTagName("titulo")[i].childNodes[0].nodeValue + '</b><br/>' +
'        <b class="descripcion_productos">' + data.getElementsByTagName("description")[i].childNodes[0].nodeValue + '</b> <br/>' +
'        <a href="' + data.getElementsByTagName("url")[i].childNodes[0].nodeValue + '" class="descripcion_productos"><b>' + data.getElementsByTagName("url")[i].childNodes[0].nodeValue + '</b></a> <br/>' +
'      </div></td>' +
'  </tr>'
		}

		o += '</table>';
		return o;
	}
}

var x = new xmlData;
var y = new xmlNotAParser;
var z = x.loadXML();
if (z != null) {
	document.write(y.NotParseXML(z));
}
-->
</script>
</body>
</html>
Saludos,
  #14 (permalink)  
Antiguo 21/03/2008, 06:53
 
Fecha de Ingreso: septiembre-2003
Mensajes: 10
Antigüedad: 21 años, 2 meses
Puntos: 0
Re: AYUDA PLIS, JAVA y XML Y RSS

Hola!! perdona, aqui estamos en semana santa y el pais entero no funciona. Muchisimas gracias. Voy a probarlo apenas regresemos a la oficina y te digo algo. Muchisimas gracias , de veras!
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




La zona horaria es GMT -6. Ahora son las 10:30.