You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Ling Kok Choon <ko...@brel.com> on 2004/06/07 12:55:13 UTC

How to include a xml to a xsp ?

Hi all,

   currently, i am developing a program that able to merge data in the database and the data in 
xml file. I have created a xsp file that able to read data from database and open a xml file. 
the xsp will then read the xml file and replace some of the identifier with the data from 
database.

  The problem is when the page is displayed, all the xml tag is shown... 

here is my xsp code :

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsp:page
          language="java"
          xmlns:xsp="http://apache.org/xsp"
	  xmlns:esql="http://apache.org/cocoon/SQL/v2"
	  xmlns:xsp-request="http://apache.org/xsp/request/2.0"
>

<xsp:structure>
  <xsp:include>java.util.StringTokenizer</xsp:include>
  <xsp:include>java.util.List</xsp:include>
  <xsp:include>java.util.Collections</xsp:include>
  <xsp:include>java.util.ArrayList</xsp:include>
  <xsp:include>java.io.File</xsp:include>
  <xsp:include>java.io.FileReader</xsp:include>
  <xsp:include>java.io.BufferedReader</xsp:include>
  <xsp:include>java.io.PrintWriter</xsp:include>
</xsp:structure>

<documents>

<xsp:logic>
   int page_id = 0;
   int folder_id = 0;      
   String isbn = null;
   String servletPath = "";
   String filePath = "E:/Tomcat-4.1/webapps/tpl/xml/";  
         
   servletPath = request.getServletPath();
   servletPath = servletPath.substring(1, servletPath.lastIndexOf(".") );   

   filePath = filePath + servletPath + ".xml";   
</xsp:logic>   

<esql:connection>
    <esql:pool>cmsDataSource</esql:pool>
     <esql:execute-query>
      <esql:query><xsp:expr>"select p.PAGE_ID, c.CATALOG_ISBN from catalog c, page p where 
c.PAGE_ID=p.PAGE_ID and p.PAGE_PATH='" + servletPath + "'"</xsp:expr></esql:query>  
    
      <esql:results>
        <esql:row-results>      
          <xsp:logic>                                      
             page_id = <esql:get-int column="PAGE_ID"/>;
             isbn = <esql:get-string column="CATALOG_ISBN"/>;             
          </xsp:logic>        
        </esql:row-results>      
      </esql:results>
    </esql:execute-query>
</esql:connection>

<xsp:logic>

if( page_id > 0 )
{  
    //here i read the xml file..
      BufferedReader br = new BufferedReader( new FileReader( new File(filePath) ) );      
      System.out.println("filePath : " + filePath );
      System.out.println("isbn : " + isbn );
      
      String data = null;
      //read the xml file and replace it with the data from database.
  while( ( data = br.readLine() ) != null )
  {
      if( data.indexOf("{isbn}") != -1 )
      {
          data = data.replaceAll( isbn, "{isbn}" );
      }            
</xsp:logic>
<xsp:expr>data</xsp:expr>
<xsp:logic>
  }
}
</xsp:logic>
</documents>
</xsp:page>

how to return the result (<xsp:expr>data</xsp:expr>), so cocoon able to parse and transform the 
result with xsl file ?

Thanks you.

--------------------------------------------------------
Ling Kok Choon                         kokchoon@brel.com
Brel Software Pte Ltd                  Tel: 65-6272-6800
Blk 1003 Bukit Merah Central           Fax: 65-6272-2811
#07-01                                 http://www.brel.com
Singapore 159836                       06/07/04 18:55:13
                    
           Pls call us for the following services
         Web Creation, Web, Email & Domain Hosting
           Java Devt B2B B2C ASP CMS E-Commerce

--------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org