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 ...
随机推荐
- Jmeter中Switch Controller逻辑控制器用法
当Switch Controller中Switch Value设置为0时,执行第0+1个子节点:Switch Value设置为1时,执行第1+1个子节点:Switch Value设置为2时,执行第2+ ...
- JAVA之Socket通讯
Server.java: Client.java Server console:(先启动服务器,再启动客户端) 服务器读取了客户端发来的hello server: Client console:客户 ...
- graylog-docker安装
Graylog安装(docker) 1.安装docker jdk1.8 2.下载docker镜像 docker pull mongo docker pull docker.elastic.co/ela ...
- 项目Beta冲刺--3/7
项目Beta冲刺--3/7 作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Beta冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及 ...
- Discuz! X3 数据字典
pre_common_admincp_cmenu 后台菜单收藏表 字段名 数据类型 默认值 允许非空 自动递增 备注 id smallint(6) unsigned NO 是 title v ...
- 前端性能----CDN
Content Distribute Network(内容分发网络)是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发.调度等功能模块,使用户就近获取所需内容 ...
- Java-Modifier类常用方法详解
一.Modifier类的定义 Modifier类 (修饰符工具类) 位于 java.lang.reflect 包中,用于判断和获取某个类.变量或方法的修饰符Modifier类将各个修饰符表示为相对应的 ...
- (2)在树莓派安装运行在Python3上的OpenCV
https://www.jianshu.com/p/56929416b4a1 http://www.eeworld.com.cn/afdz/article_2018030511619.html htt ...
- A#G/C013
A#G/C013 A Sorted Arrays 不会/kk B Hamiltonish Path 我是傻逼 如果一条路径不合法,那么把不合法的端点向没出现过的相邻点连过去救星了 C Ants on ...
- 第09组 Alpha冲刺(4/6)
队名:观光队 组长博客 作业博客 组员实践情况 王耀鑫 过去两天完成了哪些任务 文字/口头描述 完成服务器连接数据库部分代码 展示GitHub当日代码/文档签入记录 接下来的计划 服务器网络请求,vu ...