java: xslt+xml==>html

6月23日

 

/*
* Created on Jun 22, 2005 by yangyuan
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package test.xml;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import com.pepboys.shopx.report.xml.elements.XMLReport;

/**
* @author Yang Yuan
* All rights are reserved.
*
*/
public class ConvertXML {

private static boolean DEBUG = true;
public static void main(String[] args) {
  ConvertXML cm = new ConvertXML();
  try {
   System.out.println("—————————————");
   System.out.println(cm.convertXmlToHTML(null, null));
  } catch (Exception e) {
   e.printStackTrace();
  }

}

private String convertXmlToHTML(String xmlFile, String xslFile)
  throws Exception {

  String path =
   "D:\\Project\\IBM\\Pepboy\\workspace"
    + "\\ReportTeamDoc\\design\\XSLSample";

  xslFile = path + "\\" + "DisplayAllReport_HTML.xsl";
  xmlFile = path + "\\" + "DisplayAllReport.xml";

  String retStr = "";

  if (DEBUG) {
   System.out.println("#####################");
   System.out.println("xsl file:" + xslFile);
   System.out.println("xml data: \n " + xmlFile);
   System.out.println("######################");
  }

  try {
   BufferedReader fr = new BufferedReader(new FileReader(xmlFile));
   StringBuffer report = new StringBuffer();
   String tmpString = "";
   while ((tmpString = fr.readLine()) != null) {
    report.append(tmpString );
   }

   TransformerFactory factory = TransformerFactory.newInstance();
   Transformer transformer =
    factory.newTransformer(new StreamSource(xslFile));

   Source src = new StreamSource(new StringReader(report.toString()));

   StringWriter out = new StringWriter(2000);
   StreamResult res = new StreamResult(out);

   transformer.transform(src, res);

   // delete HTML header and tailer
   StringBuffer buff = out.getBuffer();
   int pos = buff.indexOf("<body>");
   int lastpos = buff.lastIndexOf("</body>");

   if (pos > -1 && lastpos > -1) {
    retStr = buff.substring(pos + 6, lastpos);
   } else {
    retStr = buff.toString();
   }
  } catch (TransformerException ex) {
   ex.printStackTrace();
  }

  return retStr;
}

}

相关帖子:
  • No Related Posts
  • micas Jun 13th 2005 09:53 pm J2EE No Comments yet Trackback URI Comments RSS

    Leave a Reply

    You must be logged in to post a comment.