使用JDOM處理XML資料之XSLT篇(二) (轉)

amyz發表於2007-11-25
使用JDOM處理XML資料之XSLT篇(二) (轉)[@more@]

  使用J處理資料之T篇(二)

 

我們用一個bean來實現對XML文件的格式化。microsoft-com::office" />

XSLTFilter.java

package XML; 

 

import java.io.*; 

import java.util.*;

import org.jdom.*;

import org.jdom.output.*;

import org.jdom.tranorm.*;

import javax.xml.transform.*; 

import javax.xml.transform.stream.*; 

 

public class XSLTFilter { 

  private  Document outputDoc;

  private  String stylesheetPath; 

  private  Document doc=null;

  public  XSLTFilter() {}

  public void setoutputDoc(Document s)  {

  this.outputDoc=s;

  }

 public void setStylePath(String s)  {

  this.stylesheetPath=s;

  }

  public void startFilter()  {

  try {

  TransformerFactory myFactory = TransformerFactory.newInstance();

  Transformer myTransformer = myFactory.newTransformer(new Stream(stylesheetPath));

 

  JDOMResult result = new JDOMResult();

  myTransformer.transform( new JDOMSource( outputDoc ), result );

  doc = result.getDocument();

 

  } catch (Exception e) {

  System.out.println("Error was:" + e.getMessage());

  } 

  }

  public void destroy() {}

  public Document getXmlDoc(){

  return(doc);

 }

}

這個javabean輸入一個JDOM文件格式,輸入一個XSLT文件的位置,輸出格式化好的文件。

然後用一個來這個javabean

  String fileName="watchlist.xml";

  String aa=getContext().getRealPath("/")+"jdom";

  String trace=aa+fileName;

  String styleName="watchlist.xsl";

  String styleTrace=aa+styleName;

  String resultName="aa.html";

  String resultTrace=aa+resultName;

  XML.readXML readXmlBean  = new  XML.readXML(); 

  Document doc;

  readXmlBean.readXML(trace);

  doc=readXmlBean.getXmlDoc();

  XML.XSLTFilter XSLTFilter =new  XML.XSLTFilter();

  XSLTFilter.setoutputDoc(doc);

  XSLTFilter.setStylePath(styleTrace);

  XSLTFilter.startFilter();

  doc=XSLTFilter.getXmlDoc();

  XML.writeXML writeXmlBean  = new  XML.writeXML();

  writeXmlBean.writeXML(doc,resultTrace);

%>

文中用到的readXML和writeXML參見 :

?id=20720


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-984598/,如需轉載,請註明出處,否則將追究法律責任。

相關文章