| Oracle8i Application Developer's Guide - XML Release 3 (8.1.7) Part Number A86030-01 |
|
Customizing Content with XML: Dynamic News Application, 13 of 16
The following code, from xmlnews.admin.AdminServlet.performGeneration and xmlnews.admin.AdminServlet.staticProcessingHtml, shows how the application queries the database for news items in each available category and converts each result set to a XML document.
The database stores the XML for each category as a CLOB (Character Large OBject), so the application can handle very long lists.
public void performGeneration(String p_user, String p_genType, HttpServletResponse p_response) throws ServletException, IOException { ... try { String l_fileSep = System.getProperty("file.separator"); String l_message = ""; // Holds status message if (p_genType.equals("BATCH_GEN")) { // Batch Generation String l_htmlFile = "BatchGeneration"; String l_xslFile = "BatchGeneration"; String l_xmlFile = "BatchGeneration"; // Generate the XML and HTML content and save it in a file this.staticProcessingHtml( m_dynNewsEnv.m_dynNewsHome+l_fileSep+l_htmlFile+".html", m_dynNewsEnv.m_dynNewsHome+l_fileSep+m_dynNewsEnv.m_batchGenXSL, m_dynNewsEnv.m_dynNewsHome+l_fileSep+l_xmlFile+".xml" ); ... } ... }
The method xmlnews.admin.AdminServlet.staticProcessingHtml defines and executes a query to fetch the news items. Then it uses the Oracle XML-SQL Utility (XSU) to build an XML document from the result set and create an HTML page by applying an XSLT transformation.
public void staticProcessingHtml(String p_htmlFile,String p_xslfile, String p_xmlfile) throws Exception { String l_query = "select a.id, a.title, a.URL, a.DESCRIPTION, " + " to_char(a.ENTRY_DATE, 'DD-MON-YYYY'), a.CATEGORY_ID, b.name, a.SUB_CATEGORY_ID, c.name, a.Type_Id, d.name, " + " a.Submitted_By_Id, e.name, to_char(a.expiration_date, 'DD-MON-YYYY'), a.approved_flag " + " from news_items a, categories b, sub_categories c, types d, users e where " + " a.category_id is not null and a.sub_category_id is not null and "+ " a.type_id is not null and a.EXPIRATION_DATE is not null and "+ " a.category_id = b.id AND a.SUB_CATEGORY_ID = c.id AND a.Type_ID = d.id AND " + " a.SUBMITTED_BY_ID = e.id AND "+ " a.EXPIRATION_DATE > SYSDATE AND "+ " a.APPROVED_FLAG = \'A\' ORDER BY b.name, c.name "; Statement l_stmt = m_connection.createStatement(); ResultSet l_result = l_stmt.executeQuery(l_query); // Construct the XML Document using Oracle XML SQL Utility XMLDocument l_xmlDocument = m_xmlHandler.constructXMLDoc(l_result); l_stmt.close(); // Get the HTML String by applying corresponding XSL to XML. String l_htmlString = m_xmlHandler.applyXSLtoXML(l_xmlDocument,p_xslfile); File l_file = new File(p_htmlFile); FileOutputStream l_fileout = new FileOutputStream(l_file); FileOutputStream l_xmlfileout = new FileOutputStream(new File(p_xmlfile));. l_fileout.write(l_htmlString.getBytes()); l_xmlDocument.print(l_xmlfileout); l_fileout.close(); l_xmlfileout.close(); }
|
|
![]() Copyright © 1996-2000, Oracle Corporation. All Rights Reserved. |
|