站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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应用向导 – 配置篇