繁体   English   中英

如何在Java / J2EE中以编程方式为新闻站点生成RSS?

[英]how to generate RSS for news sites programmatically in java/j2ee?

如何以编程方式为新闻站点生成RSS? 我不知道该如何开始。

我从这篇文章中学到了如何编写RSS:

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

您也可以转到喜欢的RSS源,然后按“查看源代码”。 然后,您应该只使用Java应用程序来复制与您看到的XML类似的XML(仅与数据一起使用)。

完成后,请使用许多RSS验证器之一来验证您的RSS。

比初看起来要容易...

此代码显示如何手动查询数据库以从JSP生成任意XML。
它不是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;
}

如何使用像Romejrss这样的框架

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM