当前页面: 开发资料首页 → Java 专题 → JDom 常用转换方法 
JDom 常用转换方法 
摘要: JDom 常用转换方法  
   
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
/**
 *这个类提供一些 JDom 对象常用的方法。
 * @author 刘海龙(xiaoleilong@mail.biti.edu.cn)
 */
public class JDomUtil {
    /**
 
    * 根据指定路径的XML文件建立JDom对象
 
    * @param filePath XML文件的路径
  
   * @return 返回建立的JDom对象,建立不成功返回null 。
     */
  
  public static Document buildFromFile(String filePath) {
        try {
  
          SAXBuilder builder = new SAXBuilder();
  
          Document anotherDocument = builder.build(new File(filePath));
  
          return anotherDocument;
  
      } catch(JDOMException e) {
  
          e.printStackTrace();
  
      } catch(NullPointerException e) {
  
          e.printStackTrace();
        }
  
      return null;
    }
    /**
  
   * 根据XML 字符串 建立JDom对象
  
   * @param xmlString XML格式的字符串
  
   * @return 返回建立的JDom对象,建立不成功返回null 。
     */
  
  public static Document buildFromXMLString(String xmlString) {
        try {
  
          SAXBuilder builder = new SAXBuilder();
  
          Document anotherDocument = builder.build(new StringReader
(xmlString));
 
           return anotherDocument;
 
       } catch(JDOMException e) {
 
           e.printStackTrace();
  
      } catch(NullPointerException e) {
  
          e.printStackTrace();
        }
  
      return null;
    }
    /**
  
   * 根据Dom对象建立JDom对象
  
   * @param Dom org.w3c.dom.Document对象
  
   * @return 返回建立的JDom对象,建立不成功返回null 。
     */
  
  public static Document buildFromDom(org.w3c.dom.Document Dom)
  
      throws JDOMException, IOException {
  
      org.jdom.input.DOMBuilder builder = new 
org.jdom.input.DOMBuilder();
  
      Document jdomDoc = builder.build(Dom);
  
      return jdomDoc;
    }
    /**
   
  *这个方法使用XMLOutputer将一个JDom对象输出到标准输出设备,使用 GBK 编码
  
   * @param myDocument 将要被输出的JDom对象
     */
 
   public static void outputToStdout(Document myDocument) {
 
       outputToStdout(myDocument,"GBK");
    }
    /**
 
    *这个方法使用XMLOutputer将一个JDom对象输出到标准输出设备
 
    * @param myDocument 将要被输出的JDom对象
 
    * @param encoding 输出使用的编码
     */
 
   public static void outputToStdout(Document myDocument,String 
encoding) {
 
       try {
 
           XMLOutputter outputter = new XMLOutputter("   ", 
true,encoding);
 
           outputter.output(myDocument, System.out);
 
       } catch (java.io.IOException e) {
 
           e.printStackTrace();
        }
    }
  /**
 
    * 这个方法将JDom对象转换字符串.
 
    * @param document 将要被转换的JDom对象
     */
 
public static String outputToString(Document document){
 
 return outputToString(document,"GBK"); 
 }
 /**
 
    * 这个方法将JDom对象转换字符串.
 
    * @param document 将要被转换的JDom对象
 
    * @param encoding 输出字符串使用的编码
     */
 public static String outputToString(Document document,String encoding){
 
 ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
 
 XMLOutputter docWriter = new XMLOutputter("    ", true,encoding);
  try{
   docWriter.output(document, byteRep);
  }catch(Exception e){
 
  }
 
 
 return byteRep.toString();
 }
 public static org.w3c.dom.Document outputToDom(org.jdom.Document 
jdomDoc)
 
    throws JDOMException {
  org.jdom.output.DOMOutputter outputter = new 
org.jdom.output.DOMOutputter();
     return outputter.output(jdomDoc);
 }
    /**
     * 这个方法使用XMLOutputter将JDom对象输出到文件
     * @param myDocument 将要输出的JDom对象
     * @param filePath 将要输出到的磁盘路径
     */
    public static void outputToFile(Document myDocument,String filePath) {
 
       outputToFile(myDocument,filePath,"GBK");
    }
 /**
 
    * 这个方法使用XMLOutputter将JDom对象输出到文件
 
    * @param myDocument 将要输出的JDom对象
 
    * @param filePath 将要输出到的磁盘路径
 
    * @param encoding 编码方式
     */
 
   public static void outputToFile(Document myDocument,String 
filePath,String encoding) {
 
       //setup this like outputDocument
 
       try {
 
           XMLOutputter outputter = new XMLOutputter("  ", 
true,encoding);
 
           //output to a file
  
          FileWriter writer = new FileWriter(filePath);
  
          outputter.output(myDocument, writer);
  
          writer.close();
  
      } catch(java.io.IOException e) {
  
          e.printStackTrace();
        }
    }
    /**
  
   * 这个方法将JDom对象通过样式单转换.
 
    * @param myDocument 将要被转换的JDom对象
 
    * @param xslFilePath XSL文件的磁盘路径
     */
 
   public static void executeXSL(Document myDocument,String 
xslFilePath,StreamResult xmlResult) {
  try {
 
  TransformerFactory tFactory = TransformerFactory.newInstance();
 
           // Make the input sources for the XML and XSLT documents
 
           org.jdom.output.DOMOutputter outputter = new 
org.jdom.output.DOMOutputter();
 
           org.w3c.dom.Document domDocument = outputter.output
(myDocument);
            javax.xml.transform.Source xmlSource = new 
javax.xml.transform.dom.DOMSource(domDocument);
 
           StreamSource xsltSource = new StreamSource(new 
FileInputStream(xslFilePath));
   //Get a XSLT transformer
   Transformer transformer = tFactory.newTransformer(xsltSource);
   //do the transform
   transformer.transform(xmlSource, xmlResult);
       } catch(FileNotFoundException e) {
            e.printStackTrace();
        } catch(TransformerConfigurationException e) {
            e.printStackTrace();
  } catch(TransformerException e) {
            e.printStackTrace();
        } catch(org.jdom.JDOMException e) {
            e.printStackTrace();
        }
 }
 //Main 函数,局部测试用。
    public static void main(String argv[]) {
    }
}
 
↑返回目录 
前一篇: 
JDO之前世今生   
后一篇: 
JDO+JSP2.0开发Web应用向导 – 配置篇