XMLUtil.java
package ssh.util;
import java.io.File;
import java.util.Iterator;
import org.apache.struts2.ServletActionContext;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 简单XML工具
* @author gary
* @version 1.0
*
*/
public class XMLUtil {
private static Document document;
private static Element rootElement;
public XMLUtil(){
}
public XMLUtil(String fileName){
init(fileName);
}
/**
* 初始化
* @param fileName
*/
private void init(String fileName){
SAXReader reader = new SAXReader();
try {
document = reader.read(new File(getXMLFilePath(fileName)));
} catch (DocumentException e) {
e.printStackTrace();
}
rootElement = document.getRootElement();
}
/**
* 获得指定xml文件(不包含扩展名)的路径
* @param xmlFileName
* @return
*/
public String getXMLFilePath(String xmlFileName){
File directory = new File(ServletActionContext.getServletContext().getRealPath(xmlFileName+".xml").replace("\\", "\\\\"));
String path = directory.getParent().substring(0, directory.getPath().lastIndexOf(File.separator))+File.separator+"WEB-INF"+File.separator+"classes"+File.separator+xmlFileName+".xml";
return path;
}
/**
* 获得目标指定属性的值
* @param target
* @param attribute
* @return
*/
public String getTargetValue(String target, String attribute){
if(target == null || target.equals("") || attribute == null || attribute.equals("")){
System.out.println("参数错误");
}else if(target.equals(rootElement.getName())){
for( Iterator<?> j = rootElement.elementIterator(attribute); j.hasNext();){
Element key = (Element) j.next();
return key.getStringValue();
}
}else{
for ( Iterator<?> i = rootElement.elementIterator(target); i.hasNext();) {
Element xmltarget = (Element) i.next();
for ( Iterator<?> j = xmltarget.elementIterator(attribute); j.hasNext();) {
Element key = (Element) j.next();
return key.getStringValue();
}
}
}
return null;
}
/**
* 获得目标属性
* @param target
* @param attribute
* @return
*/
public Element getTargetAttribute(String target, String attribute){
if(target == null || target.equals("") || attribute == null || attribute.equals("")){
System.out.println("参数错误");
}else if(target.equals(rootElement.getName())){
for( Iterator<?> j = rootElement.elementIterator(attribute); j.hasNext();){
Element key = (Element) j.next();
return key;
}
}else{
for ( Iterator<?> i = rootElement.elementIterator(target); i.hasNext();) {
Element xmltarget = (Element) i.next();
for ( Iterator<?> j = xmltarget.elementIterator(attribute); j.hasNext();) {
Element key = (Element) j.next();
return key;
}
}
}
return null;
}
/**
* 获取跟结点
* @param document
* @return
*/
public static Element getRootNode(Document document){
if(document == null){
return null;
}
Element root = document.getRootElement();
return root;
}
}
JXLReader.java
package ssh.util;
import java.io.File;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;
/**
* JXL读取配置文件
* @author gary
* @version 1.0
*
*/
public class JXLReader {
//true:XML方式
//false:properties方式
private static boolean flag = true;
private static Map<String, String> jxl;
private static XMLUtil xmlUtil;
/**
* 构造方法,判断类型,读取数据
*/
public JXLReader(){
judgementMode();
readData();
}
/**
* 初始化,读入jxl.xml或jxl.properties文件
*/
private void readData(){
if(flag){
//XML方式
xmlUtil = new XMLUtil("jxl");
}else{
//properties方式
jxl = new HashMap<String, String>();
ResourceBundle rb = ResourceBundle.getBundle("jxl");
Enumeration<String> keys=rb.getKeys();
while(keys.hasMoreElements()){
String key = (String)keys.nextElement();
String value = rb.getString(key);
jxl.put(key, value);
}
}
}
/**
* 判断类型,用XML方式还是properties方式
*/
private void judgementMode(){
File file = new File(new XMLUtil().getXMLFilePath("jxl"));
if(file.exists()){
// System.out.println("文件存在,使用xml方式");
}else{
// System.out.println("文件不存在,使用properties方式");
flag = false;
}
}
/**
* 返回指定目标的属性值
* @param target
* @param attribute
* @return
*/
public String getTargetValue(String target, String attribute){
if(flag){
return xmlUtil.getTargetValue(target, attribute);
}else{
return getTargetValueP(target, attribute);
}
}
/**
* 返回指定目标的属性值,properties方式
* @param target
* @param attribute
* @return
*/
private String getTargetValueP(String target, String attribute){
return (String)jxl.get("jxl." + target + "." + attribute);
}
}
分享到:
相关推荐
private string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\工作表.xls;Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";
该项目提供了一组 Kettle 转换(Pentaho 数据集成 ETL 工具),允许将 FHIR 资源(XML、JSON)从 FHIR 服务器导出/导入到 Excel/数据库,反之亦然。 安装 从下载 Kettle 将 fhir-etl/etc/extlib 目录复制到您的 %...
强大的Excel导出导入工具封装,支持大数据量,注解定义,简单配置即可实现。 Job作业调度,界面化在线管理,可新增,编辑、删除、暂停、恢复、运行一次等操作 在线查询在线人员,强踢在线账号。 代码生成工具操作简化...
c#+多年积累的类库 可直接运行:Chart图形,Cookie&Session&CacheCSV,文件转换,DEncrypt,FTP,JS,JSON,PDF,Properties,XML,导入导出Excel,视频转换,日历,页面辅助类,邮件等
******* 导出到excel EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""' ...用openrowset导入,除ACCESS及EXCEL外,均不支持非本机数据导入
自动切换故障节点支持多节点下并行计算支持无注册中心单机模式支持自定义重试策略支持配置持久化(启动加载、变更保存)支持控制台(jeesuite-admin)任务监控、开停、动态修改调度时间策略、手动触发执行jeesuite-...
4. 修改配置文件:根据实际情况修改项目的配置文件,如application.properties、logback.xml等。 5. 启动项目:在项目根目录下执行mvn spring-boot:run命令启动项目。 6. 访问系统:在浏览器中输入服务器IP地址和...
4. 修改配置文件:根据实际情况修改项目的配置文件,如application.properties、logback.xml等。 5. 启动项目:在项目根目录下执行mvn spring-boot:run命令启动项目。 6. 访问系统:在浏览器中输入服务器IP地址和...
4. 修改配置文件:根据实际情况修改项目的配置文件,如application.properties、logback.xml等。 5. 启动项目:在项目根目录下执行mvn spring-boot:run命令启动项目。 6. 访问系统:在浏览器中输入服务器IP地址和...
4. 修改配置文件:根据实际情况修改项目的配置文件,如application.properties、logback.xml等。 5. 启动项目:在项目根目录下执行mvn spring-boot:run命令启动项目。 6. 访问系统:在浏览器中输入服务器IP地址和...
4. 修改配置文件:根据实际情况修改项目的配置文件,如application.properties、logback.xml等。 5. 启动项目:在项目根目录下执行mvn spring-boot:run命令启动项目。 6. 访问系统:在浏览器中输入服务器IP地址和...
4. 修改配置文件:根据实际情况修改项目的配置文件,如application.properties、logback.xml等。 5. 启动项目:在项目根目录下执行mvn spring-boot:run命令启动项目。 6. 访问系统:在浏览器中输入服务器IP地址和...
Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...