zoukankan      html  css  js  c++  java
  • 在java代码中用xslt处理xml文件

    java处理xml文件

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.UnsupportedEncodingException;
    import java.net.URL;
    import java.net.URLDecoder;
    
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.stream.StreamSource;
    
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.io.DocumentResult;
    import org.dom4j.io.DocumentSource;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    
    
    public class Jom4jForXmltoXslt {
        
        /**
         * 利用xslt文件转换xml
         * @author Administrator
         * @parame document,styleSheet
         */
        public static Document transformDocument(Document document,File styleSheet)
        throws TransformerException {
            TransformerFactory factory = TransformerFactory.newInstance();
            Transformer transformer = factory.newTransformer(new StreamSource(styleSheet));
    
            DocumentSource source = new DocumentSource(document);
            DocumentResult result = new DocumentResult();
            transformer.transform(source, result);
    
            Document transformedDoc = result.getDocument();
    
            return transformedDoc;
        }
        
        /**
         * 读取需要转换的xml文件
         * @return Document
         * @throws UnsupportedEncodingException
         * @throws FileNotFoundException
         */
        public Document getRoleXML() throws UnsupportedEncodingException, FileNotFoundException {
            InputStream is=null;
            URL url=this.getClass().getClassLoader().getResource("resources.xml");
            if(url==null) return null;
            String path = url.getFile();
            path = URLDecoder.decode(path,"UTF-8");
            is = new FileInputStream(new File(path));
            System.out.println("读到的menuConfig.xml位置在:"+path);
            SAXReader reader = new SAXReader();
    
            try {
                return reader.read(is);
            } catch (DocumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return null;
            }
        }
        
        public static void main(String args[]) throws IOException {
            try {
                
                Document doc = new Jom4jForXmltoXslt().getRoleXML();
                Document resultDoc = Jom4jForXmltoXslt.transformDocument(doc, new File("transfer-menu-before.xslt"));
    
                OutputFormat format = OutputFormat.createPrettyPrint();
                format.setEncoding("GBK");
    
                XMLWriter writer = new XMLWriter(new FileWriter(new File("output.xml")),format);
                writer.write(resultDoc);
                writer.close();
                System.out.println("用xslt转换xml文件成功!");
    
    
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (TransformerException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
    }
  • 相关阅读:
    cpu capacity、task_util、cpu_util是如何计算的?
    QTI EAS学习之find_energy_efficient_cpu
    Linux内核进程调度overview(1)
    Ondemand和Interactive gonernor工作逻辑简述
    利用init进程监控底层节点的方法架构
    Sched_Boost小结
    SchedTune
    Cpusets学习
    搭建SpringCloud微服务框架:三、读取Nacos的配置信息
    搭建SpringCloud微服务框架:一、结构和各个组件
  • 原文地址:https://www.cnblogs.com/rinack/p/9049442.html
Copyright © 2011-2022 走看看