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[]) {}
}