• jdom工具类


    package com.kcb.common.util;
    
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.StringReader;
    import java.util.List;
    
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
    
    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.JDOMException;
    import org.jdom.input.SAXBuilder;
    import org.jdom.output.Format;
    import org.jdom.output.XMLOutputter;
    
    /**
     * @author 张海峰 zhanghaifeng@kucangbao.com
     * @version 创建时间:2013-10-12 上午9:56:16
     * 类说明
     */
    
    /**
     * 这个类提供一些 JDom 对象常用的方法。
     * 
     */
    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();
            } catch (IOException e) {
                // TODO 自动生成 catch 块
                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();
            } catch (IOException e) {
                // TODO 自动生成 catch 块
                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对象输出到标准输出设备,使用 utf-8 编码
         * 
         * @param myDocument
         *            将要被输出的JDom对象
         */
        public static void outputToStdout(Document myDocument) {
            outputToStdout(myDocument, "utf-8");
        }
    
        /**
         * 这个方法使用XMLOutputer将一个JDom对象输出到标准输出设备
         * 
         * @param myDocument
         *            将要被输出的JDom对象
         * @param encoding
         *            输出使用的编码
         */
        public static void outputToStdout(Document myDocument, String encoding) {
            try {
                XMLOutputter outputter = new XMLOutputter();
                Format fm = Format.getRawFormat();
                fm.setEncoding(encoding);
                outputter.setFormat(fm);
                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, "utf-8");
        }
    
        /**
         * 这个方法将JDom对象转换字符串.
         * 
         * @param document
         *            将要被转换的JDom对象
         * @param encoding
         *            输出字符串使用的编码
         */
        public static String outputToString(Document document, String encoding) {
            ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
            XMLOutputter outputter = new XMLOutputter();
            Format fm = Format.getRawFormat();
            fm.setEncoding(encoding);
            outputter.setFormat(fm);
            try {
                outputter.output(document, byteRep);
            } catch (Exception e) {
    
            }
    
            return byteRep.toString();
        }
    
        /**
         * 这个方法将List对象转换字符串.
         * 
         * @param document
         *            将要被转换的JDom对象
         */
        public static String outputToString(List list) {
            return outputToString(list, "utf-8");
        }
    
        /**
         * 这个方法将List对象转换字符串.
         * 
         * @param document
         *            将要被转换的JDom对象
         * @param encoding
         *            输出字符串使用的编码
         */
        public static String outputToString(List list, String encoding) {
            ByteArrayOutputStream byteRep = new ByteArrayOutputStream();
            XMLOutputter outputter = new XMLOutputter();
            Format fm = Format.getRawFormat();
            fm.setEncoding(encoding);
            outputter.setFormat(fm);
            try {
                outputter.output(list, 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, "utf-8");
        }
    
        /**
         * 这个方法使用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();
                Format fm = Format.getRawFormat();
                fm.setEncoding(encoding);
                outputter.setFormat(fm);
                // 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[]) {
            // Document dom = JDomUtil.buildFromFile("f:/web.xml");
            // List list=dom.getRootElement().getChildren("servlet");
            // String vs_dom = JDomUtil.outputToString(list,"gb2312");
            // System.out.println(vs_dom);
            String xmlString = "<record><row f1="111" f2="111"/><row f1="222" f2="222"/></record>";
            Document dom = JDomUtil.buildFromXMLString(xmlString);
            List list = dom.getRootElement().getChildren("row");
            int num = list.size();
            for (int i = 0; i < num; i++) {
                Element element = (Element) list.get(i);
                System.out.println(element.getAttributeValue("f1"));
                System.out.println(element.getAttributeValue("f2"));
            }
        }
    }
  • 相关阅读:
    202103226-1 编程作业
    阅读任务
    1 20210309-1 准备工作
    20210405-1 案例分析作业
    第一周作业
    20210309-2 阅读任务
    20210309-1 准备工作
    编程作业
    阅读任务
    准备工作
  • 原文地址:https://www.cnblogs.com/cxyzl/p/3364874.html
Copyright © 2020-2023  润新知