Как генерировать RSS для новостных сайтов программно в java / j2ee? - PullRequest
0 голосов
/ 15 декабря 2009

как генерировать RSS для новостных сайтов программно? Я не знаю, как начать ..

Ответы [ 3 ]

1 голос
/ 15 декабря 2009

Я научился писать RSS из этой статьи:

http://www.petefreitag.com/item/465.cfm

Вы также можете просто перейти на RSS-канал, который вам нравится, и нажать «Просмотр источника». Затем вы должны просто использовать ваше Java-приложение для воспроизведения XML, похожего на XML, который вы видите (только с вашими данными).

Когда вы закончите, используйте один из множества валидаторов RSS для проверки вашего RSS.

Это проще, чем кажется ...

0 голосов
/ 15 декабря 2009

Как насчет использования таких фреймворков, как Рим или jrss

0 голосов
/ 15 декабря 2009

Этот код показывает, как запросить базу данных для генерации произвольного XML из JSP вручную.
Это не RSS, но идея может быть полезной для вас.

private String ExecQueryGetXml(java.sql.PreparedStatement stmt, String rowEltName) {

  String result= "<none/>";
  String item;
  java.sql.ResultSet resultSet;
  java.sql.ResultSetMetaData metaData ;
  StringBuffer buf = new StringBuffer();
  int i;

  try {
    resultSet = stmt.executeQuery();
    metaData= resultSet.getMetaData();

    int numberOfColumns =  metaData.getColumnCount();
    String[] columnNames = new String[numberOfColumns];
    for( i = 0; i < numberOfColumns; i++) 
      columnNames[i] = metaData.getColumnLabel(i+1);

    try {
      //      if ((root!=null) && (!root.equals("")))
      //    buf.append('<').append(root).append('>').append('\n');

      // each row is an element, each field a sub-element
      while ( resultSet.next() ) {
        // open the row elt
        buf.append(' ').append('<').append(rowEltName).append(">\n");
        for( i= 0; i < numberOfColumns; i++) {
          item = resultSet.getString(i+1); 
          if(item==null)   continue;
          buf.append("  <").append(columnNames[i]).append('>');
          // check for CDATA required here? 
          buf.append(item);
          buf.append("</").append(columnNames[i]).append(">\n");
        }
        buf.append("\n </").append(rowEltName).append(">\n");
      }
      // conditionally close the row elt
      // if ((root!=null) && (!root.equals("")))
      // buf.append("</").append(root).append(">\n");
      result= buf.toString();
    } 
    catch(Exception e1) {
      System.err.print("\n\n----Exception (2): failed converting ResultSet to xml.\n");
      System.err.print(e1);
      result= "<error><message>Exception (2): " + e1.toString() + ". Failed converting ResultSet to xml.</message></error>\n";
    }
  }
  catch(Exception e2) {
    System.err.print("\n\n----Exception (3).\n");
    System.err.print("\n\n----query failed, or getMetaData failed.\n");
    System.err.print("\n\n---- Exc as string: \n" + e2);
    System.err.print("\n\n---- Exc via helper: \n" + 
                     dinoch.demo.ExceptionHelper.getStackTraceAsString(e2));

    result= "<error><message>Exception (3): " + e2 + ". query failed, or getMetaData() failed.</message></error>\n";
  }

  return result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...