- 浏览: 240034 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
243035985:
顶红色的那段
eclipse增加struts.xml智能提示(绝对能用) -
spiritdyh:
不错!!!
eclipse增加struts.xml智能提示(绝对能用) -
xiarilian12:
lovelimx 写道{myEquipSN:encodeURI ...
以"对象"方式接收json数据.(解决乱码问题) -
xiarilian12:
qiaolevip 写道用不成,应该是版本的问题吧。JSONO ...
以"对象"方式接收json数据.(解决乱码问题) -
qiaolevip:
用不成,应该是版本的问题吧。JSONObject jsonOb ...
以"对象"方式接收json数据.(解决乱码问题)
一个接口ReadWriteInt ,一个实现类ReadWriteIntImp ,代码如下:
效率:1W两秒,10W溢出
package com.netunit.workbench.util; import java.io.IOException; import java.util.List; /** * 读写XML接口 * @author Ming.He * * @Data 2009-12-21 */ public interface ReadWriteInt { /** * 把数据写入xml文件 * @param list * @param cls * @throws IOException */ public void writeXML(List list, Class cls) throws IOException; /** * 把数据重xml读出来 * @param cls * @return * @throws Exception */ public List readXML(Class cls) throws Exception; }
package com.netunit.workbench.util; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; /** * 读写XML的实现 * @author Ming.He * * @Data 2009-12-21 */ public class ReadWriteIntImp implements ReadWriteInt { /** * 文件名 */ private File file ; /** * 设置编码 */ private String encoding = "GBK"; private String roots = "root"; public ReadWriteIntImp(File file) { this.file = file; } public void writeXML(List list, Class cls) throws IOException{ String className = cls.getName(); //类名包含包名 String classes = className.substring(className.lastIndexOf(".")+1,className.length());//类名 XMLWriter writer = null; // 声明写XML的对象 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(encoding); // 设置XML文件的编码格式 Document document = DocumentHelper.createDocument(); Element root = document.addElement(roots);//根节点 Element two = root.addElement(classes+"s"); two.addAttribute("class", className); Element three = null; for (int i=0;i<list.size();i++){ three = two.addElement(classes); insert(three,list.get(i),cls); } writer = new XMLWriter(new FileWriter(file), format); writer.write(document); writer.close(); } private void insert(Element three,Object object,Class cls){ Element tem = null; String name = null; Field[] field = cls.getDeclaredFields(); //所有字段 for (int i=0;i<field.length;i++){ name = field[i].getName(); tem = three.addElement(name); try { Method methodTitle = cls.getMethod(getOnetoUpperCase(name));//查找这个字段的get方法 tem.setText(methodTitle.invoke(object)+""); //执行get方法 } catch (Exception e) { e.printStackTrace(); } } } /** * 生成get方法 * @param str * @return */ private String getOnetoUpperCase(String str){ return "get"+ firsttoUpperCase(str); } /** * 生成set方法 * @param str * @return */ private String setOnetoUpperCase(String str){ return "set"+ firsttoUpperCase(str); } /** * 第一个字母大写 * @param str * @return */ private String firsttoUpperCase(String str){ return Character.toUpperCase(str.charAt(0)) + str.substring(1); } public List readXML(Class cls) throws Exception{ List list = new ArrayList(); String className = cls.getName();//类名包含包名 String classes = className.substring(className.lastIndexOf(".")+1,className.length());//类名 // 取文件 SAXReader sr = new SAXReader(); Document doc = sr.read(file); // 取根节点 Element root = doc.getRootElement(); // 跌带跟节点. Iterator it = root.elementIterator(); while (it.hasNext()) { Element two = (Element) it.next(); // 当根节点等于datas时 if (two.getName().equalsIgnoreCase(classes+"s")) { for (Iterator i = two.elementIterator(); i.hasNext();) { Element three = (Element) i.next(); Object object = cls.newInstance(); //创建对象 Element element = null ; Field[] field ; for (Iterator y = three.elementIterator(); y.hasNext();){ element = (Element) y.next(); field = cls.getDeclaredFields(); //所有字段 for (int tem=0;tem<field.length;tem++){ if (field[tem].getName().equals(element.getName())){ field[tem].setAccessible(true); //设置属性可以修改 setObject(field[tem],object,element); } } } list.add(object); } } } return list; } private void setObject(Field field,Object object,Element element){ try { if (field.getType().toString().equals("int")) field.set(object, new Integer(element.getTextTrim())); else if (field.getType().toString().equals("double")) field.set(object, new Double(element.getTextTrim())); else if (field.getType().toString().equals("long")) field.set(object, new Long(element.getTextTrim())); else field.set(object, element.getTextTrim()); } catch (Exception e) { e.printStackTrace(); } } }
效率:1W两秒,10W溢出
发表评论
-
debug模式启动resin
2011-04-11 14:11 1533只做记录用: http://www.vinceruan.inf ... -
JAVA实现压缩/解压缩zip文件
2011-02-18 12:49 16521.import java.io.BufferedInputS ... -
MD5
2011-01-20 22:15 1305package com.zyg.security.md5; ... -
揭开正则表达式的神秘面纱(1)
2010-12-29 22:43 1031揭开正则表达式的神秘面纱(1) http://blog.cs ... -
Cookie读取与写入 Java
2010-12-29 22:39 4013Cookie读取与写入有两种方法,用程序写和用js写的两种方法 ... -
在Eclipse中导入dtd和xsd文件,使XML自动提示
2010-12-29 22:37 3338DTD 类型约束文件 1. Window->Pr ... -
MD5加密
2010-12-29 22:35 959public class MD5 { public MD5 ... -
动态页面静态化 Java
2010-12-29 22:19 2067import java.io.*; import java.n ... -
lucene整理2 -- 主要的类
2010-12-29 22:13 830http://blog.csdn.net/xiaoping84 ... -
lucene整理3 -- 排序、过滤、分词器
2010-12-29 22:11 17461. 排序 1.1. Sort类 public Sort ... -
MMAnalyzer极易中文分词组件
2010-12-29 21:46 6182支持英文、数字、中文 ... -
MathContext RoundingMode BigDecimal
2010-12-29 21:41 1139import java.math.BigDecimal; i ... -
分页助手类
2010-12-29 21:37 1290/** * 分页操作助手类 * ... -
数字操作助手类
2010-12-29 21:33 1189public class NumberHelper { ... -
java实现断点续传
2010-11-08 09:46 959/** * @{#} MainThre ... -
总结Ext grid中得到选择行的方法
2010-09-07 16:21 1141(1)grid.getStore().getRange(0,s ... -
Tomcat5.5配置-多域名绑定和虚拟目录(转载)
2010-07-05 16:53 830今天帮一个朋友搭建ospo ... -
web.xml配置详细解释(2)
2010-04-15 16:32 1402这里讨论控制servlet和JSP页面的启动行为的方法。特别是 ... -
web.xml的详细配置(1)
2010-04-15 16:31 5011 定义头和根元素 部 ... -
applicationContext.xml
2010-04-07 18:15 731<?xml version="1.0" ...
相关推荐
dom4j java反射机制 实现bean与xml 的互转 方便很快
dom4j+反射机制dom4j+反射机制dom4j+反射机制dom4j+反射机制
java解析XML dom4j dom4j-1.6.1.jar dom4j.jarjava解析XML dom4j dom4j-1.6.1.jar dom4j.jar
dom4j->java dom4j开发->英文~
利用DOM4J写的关于XML文件的增删改查操作,工程内包含DOM4J的jar包。
java dom4j jar包+dom4j API
dom4j解析xml,利用反射机制.将解析出来的信息保存到一个类当中
标签:dom4j、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语...
java 通过dom4j操作 xml,含范例和源码
Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。
dom4j帮助文档 官方API All Classes Packages org.dom4j org.dom4j.bean org.dom4j.datatype org.dom4j.dom org.dom4j.dtd org.dom4j.io org.dom4j.jaxb org.dom4j.rule org.dom4j.rule.pattern org.dom...
dom4j是sourceforge.net上的一个开源项目,主要用于对XML的解析。
File file = new File("src" + File.separator + "output.xml") ; SAXReader reader = new SAXReader() ; Document doc = reader.read(file) ; // 读取XML文件
采用DOM与DOM4j两种方式针对XML文档进行增、删、改查的操作,转换方式在Test测试类中实现另一个管理类就可以了!
java_dom4j架包
dom4j dom4j dom4j dom4j dom4j dom4j
Java 四种方式操作xml,包括xml,dom,sax,jdom这四种方式的一个简单例子。
2.Java方面,使用dom4j对xml进行操作,包括节点的读取,添加,修改,删除。 3.Flex方面,使用DataGrid呈现数据;使用RemoteObject构建和Java的通信;使用到了验证控件Validator;使用了CSS样式对Alert对话框进行了...
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件...如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这是必须使用的jar包, Hibernate用它来读写配置文件。