Foros del Web » Programando para Internet » Javascript »

cortar cadena valida con rss

Estas en el tema de cortar cadena valida con rss en el foro de Javascript en Foros del Web. hola, trato de generar un rss que lee de una db mssql server, el lenguaje de servidor que utilizo es javascript, pero cuando aplico este ...
  #1 (permalink)  
Antiguo 10/05/2011, 07:03
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 9 meses
Puntos: 2
cortar cadena valida con rss

hola,

trato de generar un rss que lee de una db mssql server, el lenguaje de servidor que utilizo es javascript, pero cuando aplico este script para cortar la descripción del rss deja de funcionar:

function cortarTextoRSS(texto,lonmax)
{
var textoi = texto;
textoi = textoi.split(" ");
var lontex = 0;
var numpal = 0;
var vertex = "";

for ( i=0;i<textoi.length;i++ )
{
lontex += textoi[i].length + 1;
vertex += textoi[i] + " ";
numpal += 1;

if ( lontex >= lonmax )
{
vertex = "";
for (i=0;i<numpal;i++)
{
vertex += textoi[i] + " ";
}
vertex = vertex + "...";
break;
}
}

return vertex;
}

¿conocen alguna forma de cortar texto y que sea compatible con rss?

un saludo,
josé carlos.
  #2 (permalink)  
Antiguo 10/05/2011, 07:27
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: cortar cadena valida con rss

Sería de gran ayuda que:

1. El código lo postees pre formateado (fijate el select que dice highlight).
2. Postees el texto RSS original y como queres que quede.
__________________
blog | @aijoona
  #3 (permalink)  
Antiguo 10/05/2011, 11:26
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: cortar cadena valida con rss

Cita:
el lenguaje de servidor que utilizo es javascript,
¿en que entorno es ese? ¿node.js? ¿asp.net? menciono asp.net porque -aunque no recuerdo bien- habia un producto de micro$oft que por defecto utilizaba un lenguaje (asp o c#) pero tambien tenia la posibilidad de usar jscript.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 10/05/2011, 12:06
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: cortar cadena valida con rss

Hay implementaciones de JSSS basadas en rhino (RingoJS y narwhal por ejemplo), node no es lo unico!
__________________
blog | @aijoona
  #5 (permalink)  
Antiguo 12/05/2011, 11:54
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 9 meses
Puntos: 2
Respuesta: cortar cadena valida con rss

hola,

vamos por partes, utilizo javascript con asp (clasico).

esta pagina .asp que genera dinamicamente el rss funciona bien e incluso valida correctamente:
con rssDES = cortarTextoRSS(trabajos[i][17],150); NO FUNCIONA
con rssDES = trabajos[i][17]; se genera sin errores el rss y valida correctamente

la función es la que se incluía en el primer post, el problema está en la función pero no se por que?

el código:
Código ASP:
Ver original
  1. <%@ LANGUAGE=JavaScript%>
  2. <% Response.Charset="ISO-8859-1" %>
  3. <% Response.ContentType="application/rss+xml" %>
  4. <% Response.Buffer=true %>
  5.  
  6. <%
  7. Response.addHeader("pragma","no-cache");
  8. Response.CacheControl = "Private";
  9. Response.Expires = 0;
  10. %>
  11.  
  12. <!--#include virtual="/includes/abrirCON.asp"-->
  13. <!--#include virtual="/includes/consulSE.asp"-->
  14. <!--#include virtual="/includes/fechaTA.asp"-->
  15. <!--#include virtual="/includes/cortarTextoRSS.asp"-->
  16. <!--#include virtual="/includes/textoRSS.asp"-->
  17. <!--#include virtual="/includes/closeCONN.asp"-->
  18.  
  19. <%
  20.    
  21.         abrirCON();
  22.    
  23.         var consulta  = "select TOP 20 * from solicita ";
  24.             consulta += "where activo=\'1\' ";
  25.             consulta += "order by fecha DESC";
  26.            
  27.         consulSE();
  28.        
  29.         var trabajos = dato;
  30.             dato     = "";
  31.  
  32.         closeCONN();
  33.        
  34.    
  35.     if (!trabajos=='undefined' || !trabajos=='null' || !trabajos==0 || !trabajos=="")
  36.     {
  37.  
  38.         Response.Write("<?xml version='1.0' encoding='iso-8859-1'?>");
  39.         Response.Write("<rss version='2.0' xmlns:content='http://purl.org/rss/1.0/modules/content/' ");
  40.         Response.Write("xmlns:wfw='http://wellformedweb.org/CommentAPI/' ");
  41.         Response.Write("xmlns:dc='http://purl.org/dc/elements/1.1/' ");
  42.         Response.Write("xmlns:atom='http://www.w3.org/2005/Atom' ");
  43.         Response.Write("xmlns:sy='http://purl.org/rss/1.0/modules/syndication/' ");
  44.         Response.Write("xmlns:slash='http://purl.org/rss/1.0/modules/slash/'>");
  45.        
  46.         Response.Write("<channel>");
  47.         Response.Write("<title>EL TITULO</title>");
  48.         Response.Write("<link>LA URL PRINCIPAL</link>");
  49.         Response.Write("<atom:link href='LA URL .ASP' rel='self' type='application/rss+xml' />");
  50.         Response.Write("<description>LA DESCRIPCIÓN DE SITIO</description>");
  51.         Response.Write("<language>es</language>");
  52.  
  53.         var rssTIT;
  54.         var rssURL;
  55.         var rssDES;
  56.         var patron = /\s/g;
  57.    
  58.         for (i=0;i<trabajos.length;i++)
  59.         {
  60.             rssTIT = trabajos[i][16];
  61.             rssURL = "LA URL PRINCIPAL/" + trabajos[i][33] + "/";
  62. //          rssDES = cortarTextoRSS(trabajos[i][17],150);
  63.             rssDES = trabajos[i][17];
  64.  
  65.             Response.Write("<item>");
  66.             Response.Write("<title>" + rssTIT + "</title>");
  67.             Response.Write("<link>" + rssURL + "</link>");
  68.             Response.Write("<guid isPermaLink='true'>" + rssURL + "</guid>");
  69.             Response.Write("<description><![CDATA[" + rssDES + "]]></description>");
  70.             Response.Write("</item>");
  71.         }
  72.  
  73.         Response.Write("</channel>");
  74.         Response.Write("</rss>");
  75.  
  76.     }
  77. %>

gracias, espero que me puedan ayudar
un saludo,
josé carlos.
  #6 (permalink)  
Antiguo 12/05/2011, 11:59
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 9 meses
Puntos: 2
Respuesta: cortar cadena valida con rss

por si sirve, vuelvo a incluir el archivo con el script cortarTextoRSS.asp

Código ASP:
Ver original
  1. <&#37;
  2.  
  3.     function cortarTextoRSS(texto,lonmax)
  4.     {
  5.         var textoi = texto;
  6.  
  7.             textoi = textoi.split(" ");
  8.            
  9.         var lontex = 0;
  10.         var numpal = 0;
  11.         var vertex = "";
  12.        
  13.         for ( i=0;i<textoi.length;i++ )
  14.         {
  15.             lontex += textoi[i].length + 1;
  16.             vertex += textoi[i] + " ";
  17.             numpal += 1;
  18.            
  19.             if ( lontex >= lonmax )
  20.             {
  21.                 vertex = "";
  22.                 for (i=0;i<numpal;i++)
  23.                 {
  24.                     vertex += textoi[i] + " ";
  25.                 }
  26.                 vertex = vertex + "...";
  27.                 break; 
  28.             }
  29.         }
  30.        
  31.         return vertex;
  32.    
  33.     }
  34.  
  35. %>
  #7 (permalink)  
Antiguo 12/05/2011, 12:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: cortar cadena valida con rss

buenas,
trata de cargar directamente el rss en algun lector xml, por ejemplo el navegador. si tiene problema, lo mas seguro el navegador te lo indicara junto con alguna posible razon. por otro lado, creo que te complicas demasiado con la funcion de acortar la cadena. en javascript puedes hacer algo como lo siguiente, en jscript corriendo sobre asp no tengo idea si sea valido.
Código:
texto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam at sapien sem. In hac habitasse platea dictumst. Vivamus at nibh sed metus aliquam feugiat. Etiam suscipit congue tellus, quis vehicula massa tristique sed. Sed tempor, diam vitae aliquet fermentum, eros nulla bibendum enim, tristique cursus purus quam vitae enim. Vestibulum eget orci diam.";
resultado = texto.substring(0, texto.substring(0,150).lastIndexOf(" ")) + " ...";
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #8 (permalink)  
Antiguo 12/05/2011, 13:56
 
Fecha de Ingreso: julio-2002
Mensajes: 813
Antigüedad: 21 años, 9 meses
Puntos: 2
Respuesta: cortar cadena valida con rss

gracias.

pues utilizando la función cortaTextoRSS(cadena,longitud) el rss carga con un solo item en los tres navegadores IE, FireFox y Chrome, y valida OK con feed validator de w3c.

si no utilizo la función para cortar el texto, muestra todos los items que debe mostrar y tambien valida OK.

PERO utilizando el código:
resultado = texto.substring(0, texto.substring(0,150).lastIndexOf(" ")) + " ...";
TODO BIEN.

(con el tiempo que llevo dandole vueltas a esto y que BONITA solución)

gracias, (te he dado las gracias ya, pero no lo suficiente) muchas gracias.
un saludo.

Etiquetas: cortar, rss, cadenas
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 20:54.