XML读写工具
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.util.List; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; 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; /** * XML读写工具 * @author csx * */ public class XmlUtil { private static final Log logger=LogFactory.getLog(XmlUtil.class); public static final String CONFIG_FILE_NAME = "hurong.xml";// 系统配置文件名称 public static Document getSystemConfigXML(){ try{ Document document = null; File configFile = null; String configFilePath = Thread.currentThread().getContextClassLoader().getResource("").toURI().getPath()+"hurong.xml"; configFile = new File(configFilePath); SAXReader saxReader = new SAXReader(); document = saxReader.read(configFile); return document;} catch (Exception e) { e.printStackTrace(); return null; } } /** * * 获取第三方短信、身份证验证接口 * * * **/ public static Document getThridInterface(){ try{ Document document = null; File configFile = null; String configFilePath = Thread.currentThread().getContextClassLoader().getResource("").toURI().getPath()+"thridInterface.xml"; configFile = new File(configFilePath); SAXReader saxReader = new SAXReader(); document = saxReader.read(configFile); return document;} catch (Exception e) { e.printStackTrace(); return null; } } /** * 把Document对象转成XML String * @param document * @return */ public static String docToString(Document document) { String s = ""; try { ByteArrayOutputStream out = new ByteArrayOutputStream(); OutputFormat format = new OutputFormat(" ", true, "UTF-8"); XMLWriter writer = new XMLWriter(out, format); writer.write(document); s = out.toString("UTF-8"); } catch (Exception ex) { logger.error("docToString error:"+ex.getMessage()); } return s; } /** * 把XML String转成Document对象 * @param s * @return */ public static Document stringToDocument(String s) { Document doc = null; try { doc = DocumentHelper.parseText(s); } catch (Exception ex) { logger.error("stringToDocument error:"+ex.getMessage()); } return doc; } /** * 把Document对象转成XML对象 * @param document * @param filename * @return */ public static boolean docToXmlFile(Document document, String filename) { boolean flag = true; try { OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); XMLWriter writer = new XMLWriter( new FileOutputStream(new File(filename)), format); writer.write(document); writer.close(); } catch (Exception ex) { flag = false; logger.error("docToXmlFile error:"+ex.getMessage()); } return flag; } /** * 把String XML转成XML文件 * @param str * @param filename * @return */ public static boolean stringToXmlFile(String str, String filename) { boolean flag = true; try { Document doc = DocumentHelper.parseText(str); flag = docToXmlFile(doc, filename); } catch (Exception ex) { flag = false; logger.error("stringToXmlFile error:"+ex.getMessage()); } return flag; } /** * 加载一个XML文件转成Document对象 * @param filename * @return */ public static Document load(String filename) { return load(new File(filename)); } public static Document load(File file){ Document document = null; try { SAXReader saxReader = new SAXReader(); saxReader.setEncoding("UTF-8"); document = saxReader.read(file); } catch (Exception ex) { logger.error("load XML File error:"+ex.getMessage()); } return document; } /** * 加载一个XML文件转成Document对象 * @param filename * @return */ public static Document load(String filename,String encode) { Document document = null; try { SAXReader saxReader = new SAXReader(); saxReader.setEncoding("encode"); document = saxReader.read(new File(filename)); } catch (Exception ex) { logger.error("load XML File error:"+ex.getMessage()); } return document; } /** * 通过流加载一个XML文档对象 * @param is * @return */ public static Document load(InputStream is){ Document document = null; try { SAXReader saxReader = new SAXReader(); //System.out.println("code:" + System.getProperty("file.encoding")); saxReader.setEncoding("UTF-8"); document = saxReader.read(is); } catch (Exception ex) { logger.error("load XML File error:"+ex.getMessage()); } return document; } /** * 通过流加载一个XML文档对象 * @param is * @return */ public static Document load(InputStream is,String encode){ Document document = null; try { SAXReader saxReader = new SAXReader(); saxReader.setEncoding(encode); document = saxReader.read(is); } catch (Exception ex) { logger.error("load XML File error:"+ex.getMessage()); } return document; } public static Document styleDocument( Document document, String stylesheet ) throws Exception { // load the transformer using JAXP TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer( new StreamSource( stylesheet ) ); // now lets style the given document DocumentSource source = new DocumentSource( document ); DocumentResult result = new DocumentResult(); transformer.transform( source, result ); // return the transformed document Document transformedDoc = result.getDocument(); return transformedDoc; } public static void main(String[]args){ String filePath="L:/devtools/workspace/eoffice/web/js/menu.xml"; String style="L:/devtools/workspace/eoffice/web/js/menu-public.xsl"; Document doc=XmlUtil.load(filePath); try{ Document another=styleDocument(doc,style); System.out.println("xml:" + another.asXML()); //Set idSet=new HashSet(); Document publicDoc=another; Element rootEl=publicDoc.getRootElement(); List idNodes=rootEl.selectNodes("/Menus//*"); System.out.println("size:" + idNodes.size()); for(int i=0;i<idNodes.size();i++){ Element el=(Element)idNodes.get(i); Attribute attr= el.attribute("id"); if(attr!=null){ System.out.println("attr:" + attr.getValue()); //idSet.add(attr.getValue()); } } }catch(Exception ex){ ex.printStackTrace(); } } } |
XML读写工具的更多相关文章
- XML读写工具类
摘要:①读取XML文件,生成pojo对象:②将对象信息保存到xml中. 步骤: ①新建一个普通的java类BasePage: package com.test.selenium.pages; impo ...
- 【Python】Python XML 读写
class ACTIVE_FILE_PROTECT_RULE_VIEW(APIView): renderer_classes = (JSONRenderer, BrowsableAPIRenderer ...
- Java XML解析工具 dom4j介绍及使用实例
Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...
- XML编辑工具
[标题]XML编辑工具 [开发环境]Qt 5.2.0 [概要设计]使用QT的视图/模型结构.treeview控件以树形结构显示所要操作的XML文件,并实现xml的相关操作 [详细设计] 主要包含 no ...
- ntfs读写工具Paragon NTFS 15无限使用教程
Paragon NTFS mac版是Mac OS平台上最受欢迎的ntfs读写工具,专门开发用来弥补Windows和Mac OS X之间的不兼容性,通过在Mac OS X系统下提供对任何版本的NTFS文 ...
- properties文件读写工具类
java代码: import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; ...
- 在Android源码树中添加userspace I2C读写工具(i2c-util)
在Android源码树中添加userspace I2C读写工具(i2c-util) http://blog.csdn.net/21cnbao/article/details/7919055 分类: A ...
- jsonUtils&&Json、Xml转换工具Jackson使用
1.jsonUtils package com.icil.utils; import java.util.List; import com.fasterxml.jackson.core.JsonPro ...
- Spring-Boot ☞ ShapeFile文件读写工具类+接口调用
一.项目目录结构树 二.项目启动 三.往指定的shp文件里写内容 (1) json数据[Post] { "name":"test", "path&qu ...
随机推荐
- Use /* eslint-disable */ to ignore all warnings in a file. 报错
有了eslint的校验,可以来规范开发人员的代码,是挺好的.但是有些像缩进.空格.空白行之类的规范,但是稍有不符合,就会在开发过程中一直报错,太影响心情和效率了.所以,还是会选择关闭eslint校验. ...
- 点击一个超链接,弹出固定大小的新窗口(js实现)
1.最基本的弹出窗口代码 <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html') --> ...
- CSS float 父元素高度自适应
<html> <head><title></title><style type="text/css">*{margin: ...
- cmds在线重定义增加列
--输出信息采用缩排或换行格式化 EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'PRETTY', T ...
- luogu_4287:双倍回文
洛谷4287:双倍回文 前言: 参考博文: https://www.cnblogs.com/Vscoder/p/10498625.html 题目描述: 记字符串\(w\)的倒置为\(w^R\).例如\ ...
- 【LG3582】[POI2015]KIN
[LG3582][POI2015]KIN 题面 洛谷 题解 这题维护区间的信息有点像最大子段和,我们往最大子段和上面靠. 对于一个颜色,我们有一个直观的想法就是将它一次出现的权值设为正,二次出现就设为 ...
- 一篇JavaScript技术栈带你了解继承和原型链
作者 | Jeskson 来源 | 达达前端小酒馆 1 在学习JavaScript中,我们知道它是一种灵活的语言,具有面向对象,函数式风格的编程模式,面向对象具有两点要记住,三大特性,六大原则. 那么 ...
- uni-app 实现分享生成图片
<template> <view> <view class="personal_li" @click="shareClick"&g ...
- Oracle_PLSQL创建用户表空间
- SpringBoot整合MyBatis例子
1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...