Saturday, April 28, 2012

Create a "Current Date" Extension Element for Xalan


This tip is just a small application that creates an extension element for the Xalan processor. The name of the new element is <today> and it can be used to access the current date. After the application code, there's a small XSL stylesheet that uses this element. 

//Java code
package xslt.extension.myelement;

import java.util.Calendar;

public class MyExtension{
   public String today(org.apache.xalan.extensions.XSLProcessorContext XSLPC,
    org.apache.xalan.templates.ElemExtensionCall EEC)
    {
    String[] luni={"January","February","March", 
                   "April","May","June","July","August",
                   "September","October","November","December"};
      
    Calendar C=Calendar.getInstance();
    String luna=luni[C.get(Calendar.MONTH)];
    String data=String.valueOf(C.get(Calendar.DATE));
    String an=String.valueOf(C.get(Calendar.YEAR));
      
    return (data+"."+luna+"."+an);
    }      
}

//XSL stylesheet
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:ext="xalan://xslt.extension.myelement.MyExtension"
           extension-element-prefixes="ext">
           <xsl:output method="html" version="4.01" encoding="ISO-8859-1"
 indent="yes" media-type="text/html" />         
 
<xsl:template  match="/..."> 
   <html>
     <body bgcolor="#FFF2EC">                
      <font face="arial" size="2">
        <b>Today:<ext:today></ext:today></i></b>
      </font> 
     </body>
   </html>
</xsl:template>
</xsl:stylesheet>

No comments:

Post a Comment