- 浏览: 189579 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
elena_me:
o0teamo0o 写道您的这个 缺少了一个StringUti ...
银联生成ARQC,ARPC,MAC,CVN生成 -
lemonhou:
按照要求改了,还是报一样的错
The Maven Integration requires that Eclipse be running in a JDK -
o0teamo0o:
您的这个 缺少了一个StringUtils工具类,能提供一下么 ...
银联生成ARQC,ARPC,MAC,CVN生成 -
306963591:
附件密码123456
银联生成ARQC,ARPC,MAC,CVN生成 -
lz_cleaner:
虽然有点老了,可还是谢谢你的分享。。。。
jira手册
package com.gd.xml.parse; import java.io.File; import java.io.InputStream; import org.dom4j.Document; /** * xml解析接口 * @author sandy * */ public interface XmlParser { /** * 根据文档对象doc来解析xml * @param doc * @return */ public abstract XmlParser parseXml(Document doc); /** * 根据传入的xml输入流解析xml * @param is * @return */ public abstract XmlParser parseXml(InputStream is); /** * 根据传入的文件来解析xml * @param xmlfile * @return */ public abstract XmlParser parseXml(File xmlfile); /** * 根据文件名来解析xml * @param xmlfileName * @return */ public abstract XmlParser parseXml(String xmlfileName); }
/** * */ package com.gd.xml.parse; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.util.List; import java.util.Map; import java.util.TreeMap; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.XPath; import org.dom4j.io.SAXReader; /** * @author sandy * */ public class ConfigValuesXmlParse implements XmlParser { private Document document=null; private Map<String,ValueSet> valueSetMap=null; InputStream is=null; /* (non-Javadoc) * @see com.gd.xml.parse.XmlParser#parseXml(org.dom4j.Document) */ @SuppressWarnings("unchecked") public ConfigValuesXmlParse() { valueSetMap=new TreeMap<String,ValueSet>(); } public XmlParser parseXml(Document doc){ this.document=doc; XPath path=doc.createXPath("/configValues//valueSet"); List<Node> nodes=path.selectNodes(doc); for(Node valueSetNode:nodes){ ValueSetDefaultImpl valueset=new ValueSetDefaultImpl(); Element valueSetE=(Element)valueSetNode; valueset.setId(valueSetE.attributeValue("id")); valueset.setName(valueSetE.attributeValue("name")); path=valueSetE.createXPath(".//value"); nodes=path.selectNodes(valueSetE); for(Node valueNode:nodes){ Value value=new Value(); Element valueE=(Element)valueNode; value.setDisplay(valueE.attributeValue("display")); value.setValue(valueE.attributeValue("value")); valueset.getValues().add(value); } this.valueSetMap.put(valueset.getId(), valueset); } path=this.document.createXPath("//dynamicValueSet"); nodes=path.selectNodes(doc); for(Node dyNode:nodes){ DynamicValueSet dyvalueSet=new DynamicValueSet(); Element dyElement=(Element)dyNode; dyvalueSet.setId(dyElement.attributeValue("id")); dyvalueSet.setName(dyElement.attributeValue("name")); dyvalueSet.setSql(dyElement.getTextTrim()); this.valueSetMap.put(dyvalueSet.getId(),dyvalueSet); } return this; } /* (non-Javadoc) * @see com.gd.xml.parse.XmlParser#parseXml(java.io.InputStream) */ public XmlParser parseXml(InputStream is){ SAXReader saxReader = new SAXReader(); Document doc=null; try { doc = saxReader.read(is); } catch (DocumentException e) { //add log message ..................... throw new RuntimeException(e.getMessage()); } return this.parseXml(doc); } /* (non-Javadoc) * @see com.gd.xml.parse.XmlParser#parseXml(java.io.File) */ public XmlParser parseXml(File xmlfile){ try { is=new FileInputStream(xmlfile); } catch (FileNotFoundException e) { System.out.println("文件名字为:"+"["+xmlfile.getName()+"]"+"的文件找不到!"); //e.printStackTrace(); } return this.parseXml(is); } /* (non-Javadoc) * @see com.gd.xml.parse.XmlParser#parseXml(java.lang.String) */ public XmlParser parseXml(String xmlfileName){ ClassLoader clazzloader=Thread.currentThread().getContextClassLoader(); is=clazzloader.getResourceAsStream(xmlfileName); return this.parseXml(is); } public static void main(String[] args) { XmlParser s=new ConfigValuesXmlParse(); s.parseXml("configValues.xml"); } /** * @return the valueSetMap */ public Map<String, ValueSet> getValueSetMap() { return valueSetMap; } }
/** * */ package com.gd.xml.parse; import java.util.List; /** * @author sandy * */ public interface ValueSet{ public List<Value> getValues(); }
/** * */ package com.gd.xml.parse; /** * @author sandy * */ public class Value { private String display=null; private String value=null; /** * @return the display */ public String getDisplay() { return display; } /** * @param display the display to set */ public void setDisplay(String display) { this.display = display; } /** * @return the value */ public String getValue() { return value; } /** * @param value the value to set */ public void setValue(String value) { this.value = value; } @Override public String toString() { String msg = "{"; msg += "value[" + value + "], "; msg += "display[" + display + "]}"; return msg; } }
/** * */ package com.gd.xml.parse; import java.util.LinkedList; import java.util.List; import java.util.Map; import com.gd.xml.parse.util.QueryDao; /** * @author sandy * */ public class DynamicValueSet implements ValueSet{ private String id=null; private String name=null; private String sql=null; private List<Value> values = new LinkedList<Value>(); /** * @return the id */ public String getId() { return id; } /** * @param id the id to set */ public void setId(String id) { this.id = id; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @return the sql */ public String getSql() { return sql; } /** * @param sql the sql to set */ public void setSql(String sql) { this.sql = sql; } /** * @return the values */ public List<Value> getValues() { List<Value> list = new LinkedList<Value>(); QueryDao dao = new QueryDao(); Map<String, String> map = dao.findDisplayValueSet(sql); for (String key : map.keySet()) { Value val = new Value(); val.setValue(key); val.setDisplay(map.get(key)); list.add(val); } return list; } }
/** * */ package com.gd.xml.parse; import java.util.LinkedList; import java.util.List; /** * @author sandy * */ public class ValueSetDefaultImpl implements ValueSet{ private String id=null; private String name=null; private List<Value> values = new LinkedList<Value>(); /** * @return the id */ public String getId() { return id; } /** * @param id the id to set */ public void setId(String id) { this.id = id; } /** * @return the name */ public String getName() { return name; } /** * @param name the name to set */ public void setName(String name) { this.name = name; } /** * @param values the values to set */ public void setValues(List<Value> values) { this.values = values; } /** * @return the values */ public List<Value> getValues() { return values; } }
/** * */ package com.gd.xml.parse.util; import java.util.HashMap; import java.util.Map; /** * @author sandy * */ public class QueryDao { public Map<String,String> findDisplayValueSet(String sql){ Map<String,String> map=new HashMap<String,String>(); /* *<dynamicValueSet id="DGV001" name="卡BIN"><![CDATA[ * SELECT code_vl,code_name FROM XXXXX * ]]></dynamicValueSet> * sql=SELECT code_vl,code_name FROM XXXXX */ //根据从数据库中查询获得的数据,来构建map对象 return map; } }
<?xml version="1.0" encoding="UTF-8"?> <configValues> <valueSet id="GV0001" name="交易地点"> <value display="北京" value="01" /> <value display="上海" value="02" /> <value display="天津" value="03" /> <value display="山东" value="04" /> <value display="山西" value="05" /> </valueSet> <valueSet id="GV0002" name="转账种类"> <value display="活期转账" value="01" /> <value display="定活互转" value="02" /> <value display="向企业转账" value="03" /> <value display="贷记卡转账" value="04" /> </valueSet> <valueSet id="GV0003" name="卡种"> <value display="信用卡" value="01" /> <value display="借记卡" value="02" /> </valueSet> <valueSet id="GV0004" name="卡别"> <value display="易行卡" value="01" /> <value display="CBA卡" value="02" /> <value display="公务员卡" value="03" /> <value display="学生卡" value="04" /> <value display="婚庆卡" value="05" /> <value display="社区卡" value="06" /> <value display="青年卡" value="07" /> <value display="车主卡" value="08" /> <value display="理财卡" value="09" /> <value display="交通卡" value="10" /> </valueSet> <valueSet id="GV0005" name="客户等级"> <value display="沃德客户" value="01" /> <value display="交银理财客户" value="02" /> <value display="普通客户" value="03" /> <value display="VIP客户" value="04" /> </valueSet> <valueSet id="GV0006" name="员工类型"> <value display="行内员工" value="01" /> <value display="非行内员工" value="02" /> </valueSet> <valueSet id="GV0007" name="客户性别"> <value display="女性" value="01" /> <value display="男性" value="02" /> </valueSet> <valueSet id="GV008" name="客户等级"> <value display="普通客户" value="01" /> <value display="VIP用户" value="02" /> </valueSet> <dynamicValueSet id="DGV001" name="卡BIN"><![CDATA[ SELECT code_vl,code_name FROM XXXXX ]]></dynamicValueSet> <dynamicValueSet id="DGV002" name="借记卡类型"><![CDATA[ SELECT DCCDKD,DCCDNM FROM XXXXX ]]></dynamicValueSet> <dynamicValueSet id="DGV005" name="交易类型"><![CDATA[ SELECT code_vl,code_name FROM XXXXX ]]></dynamicValueSet> </configValues>
/** * */ package com.gd.xml.parse.test; import java.util.List; import java.util.Map; import com.gd.xml.parse.*; /** * @author sandy * */ public class Client { /** * @param args */ public static String XML_PARSERFILENAME="configValues.xml"; public static void main(String[] args) { Map<String, ValueSet> valuesetMap=init(); fetchValues(valuesetMap); } private static void fetchValues(Map<String, ValueSet> valuesetMap) { ValueSet valset=valuesetMap.get("GV0001"); ValueSetDefaultImpl valuesetimpl=(ValueSetDefaultImpl)valset; System.out.print("ID:"+"["+valuesetimpl.getId()+"]"+"Name:["+valuesetimpl.getName()+"]"+"\n\r"); List<Value> values=valuesetimpl.getValues(); for(Value value:values){ System.out.println("display:["+value.getDisplay()+"]"+"value:["+value.getValue()+"]"); } } private static Map<String,ValueSet> init() { XmlParser parser=new ConfigValuesXmlParse(); ConfigValuesXmlParse cfgparser=(ConfigValuesXmlParse)parser.parseXml(XML_PARSERFILENAME); return cfgparser.getValueSetMap(); } }
- dom4j_parsexml.rar (525 KB)
- 下载次数: 21
发表评论
-
根据文件中jar地址生成jar
2011-08-18 10:22 1031import java.io.File; import ja ... -
java实现解压zip文件
2011-07-04 19:10 1875注意: 1:使用jdk自带的zip的util的工具类实现解压 ... -
插入clob数据(template data)
2011-05-12 12:32 1804package com.icitic.iccard.dp.te ... -
DP判断取多少字节根据银联
2011-05-12 12:26 1323/** * */ package com.icit ... -
java类的初始化
2011-03-17 15:06 1026类的初始化时机: 1:创建类的实例。 2: 访问某个类或接 ... -
java实现分页
2010-11-30 21:15 2185平时我们用到的分页程序主要有两种分页方式: 1:用数据库进行 ... -
使用SAX解析xml文件
2010-11-29 21:29 1370通常解析xml文件我们主要用到的时候利用第三方的jar包如:j ... -
解决Struts2中表单提交到action时的中文乱码
2010-11-20 15:21 5260在struts2的开发过程中出现乱码的情况如下: 1:jsp ... -
Eclipse反编译插件: Jodeclipse与JadClipse
2010-11-03 12:20 1161Jodeclipse 是Jode的Eclipse插件,JadC ... -
java.util.logging日志功能使用
2010-09-17 15:37 1358Java Logging API是sun公司于2002年5月正 ... -
Java异常处理
2010-09-14 17:20 1306一、Java中异常概述 1.1J ... -
JVM的结构
2010-09-07 09:46 870JVM的结构 从功能上分,Java虚拟机主要由六个 ... -
System.getProperty()参数大全
2010-09-06 21:08 696java.version ... -
hibernate缓存
2010-09-06 20:30 675很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇 ... -
深入探讨 Java 类加载器
2010-09-06 16:56 760简介: 类加载器(class ... -
ClassLoader加载类的路径问题
2010-09-06 16:43 1537有的时候我们需要读取文件,文件的路径若写死了,当我们上线的时候 ... -
Thread匿名内部类为什么 必须声明为final变量?
2010-09-06 15:09 3242匿名内部类实用定义在外部的变量,该变量必须是final类型1: ... -
使用正则表达式抓取页面Email
2010-09-05 18:57 1247当我们做广告的时候,有的时候需要给很多匿名用户发Email来实 ... -
java定时器Timer,TimerTask每隔一段时间随机生成数字
2010-09-05 11:09 142741:java.util.Timer类是一种工具,线程用其安排以 ... -
Scanner读取文件和StringBuffer读取文件
2010-09-05 10:20 9150Scanner扫描器读取文件注意事项: 1:Scan ...
相关推荐
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml
**DOM4J解析XML** DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效且功能丰富的API,使得XML的读取、创建、修改和查询变得简单易行。DOM4J的主要特点包括对XPath的支持、事件驱动的解析、以及与...
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...
在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...
**DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...
在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...
本人自己研究的解析方法,主要用dom4j解析XML文件,进而获取里面的信息
通过这种方式,我们可以利用DOM4J解析XML文件,同时借助Java反射机制将解析结果动态地映射到自定义的Java类中。这在处理XML数据时提供了很大的灵活性,尤其在需要将XML数据与业务对象关联时,反射机制显得尤为重要。
在本示例中,我们将深入探讨如何使用DOM4J解析XML文件,以`CacheInit.java`作为我们的核心代码示例,并参考`emailTemplateConfig.xml`作为实际操作的对象。 首先,让我们了解XML(eXtensible Markup Language)。...
1. **DOM4J解析XML**:DOM4J通过创建一个可操作的树形结构来表示XML文档,这棵树称为文档对象模型。解析XML时,DOM4J首先读取XML文件并构建一个节点结构,然后你可以通过API遍历和修改这个结构。例如,你可以通过...
【使用dom4j解析XML】 dom4j是一个强大的开源XML框架,它提供了处理XML文档的各种功能,包括解析、创建、修改等。相比W3C DOM API,dom4j的优势在于其内置的XPath支持,允许更方便地定位和操作XML文档中的节点。 *...
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
为了在Java项目中使用DOM4J解析XML,你需要将这两个jar文件(dom4j-1.6.1和jaxen-1.1-beta-7.jar)添加到你的类路径(classpath)中。这可以通过在IDE中配置构建路径,或者在命令行中指定 `-cp` 参数来完成。一旦...
在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...
2. **XML解析**:DOM4J支持多种解析方式,包括SAX(Simple API for XML)和DOM。SAX是基于事件的解析,适用于处理大文件;DOM则将整个XML文档加载到内存,适合小规模或内存允许的情况。DOM4J还提供了StAX(Streaming...
dom4j解析xml字符串实例