java digester-jar类解析xml 简单例子
来源:互联网 发布:淘宝网汽车坐垫套途观l 编辑:程序博客网 时间:2024/06/13 23:35
1.xml文件:
<?xml version="1.0" encoding="UTF-8"?><students> <student> <name>Tom</name> <course>JSP</course> </student> <student> <name>Mary</name> <course>J2EE</course> </student></students>2.硬编码形式实现
Student类package com.tongda.whl.digester;public class Student { private String name; private String course; public void setName(String name){ this.name=name; } public void setCourse(String course){ this.course=course; } public String getName(){ return this.name; } public String getCourse(){ return this.course; }}处理类
package com.tongda.whl.digester; import org.apache.commons.digester.*; import org.apache.commons.logging.*; import java.io.IOException; import java.util.Vector; import org.apache.commons.digester.xmlrules.*; import org.xml.sax.SAXException; public class DigestTest { private Log log=LogFactory.getLog(this.getClass()); private Vector students; public DigestTest(){ students= new Vector(5); } public void addStudent( Student student){ students.add( student); } public String toString(){ return ((Student)students.get(0)).getName(); } public void digest(){ //digest2.0支持jdk1.5,并且依赖 logging 1.1.1 和 beanutils 1.8.0 //创建实例 Digester digester= new Digester(); //将初始对象压入digester的stack digester.push( this); //指明匹配模式和要创建的类 digester.addObjectCreate( "students/student", Student.class); //设置对象属性 // digester digester.addBeanPropertySetter( "students/student/name"); digester.addBeanPropertySetter( "students/student/course"); //当移动到下一个标签中时的动作 digester.addSetNext( "students/student", "addStudent"); try { //解析,xml文件放在classpath下 DigestTest ds= (DigestTest)digester.parse( getClass().getClassLoader().getResourceAsStream( "students.xml")); log.info(ds); } catch (Exception e) { e.printStackTrace(); } } public static void main(String args[]){ DigestTest test=new DigestTest(); test.digest(); } }结果显示:Tom
3.配置文件方式实现
配置文件:studentsRule.xml <?xml version="1.0"?><digester-rules> <pattern value="students"> <object-create-rule classname="com.tongda.whl.digester.Students" /> <set-properties-rule /> <pattern value="student"> <object-create-rule classname="com.tongda.whl.digester.Student" /> <bean-property-setter-rule pattern="name"/> <bean-property-setter-rule pattern="course"/> <set-next-rule methodname="addStudent" /> </pattern> </pattern></digester-rules>Student类package com.tongda.whl.digester;public class Student { private String name; private String course; public void setName(String name){ this.name=name; } public void setCourse(String course){ this.course=course; } public String getName(){ return this.name; } public String getCourse(){ return this.course; }}Students类package com.tongda.whl.digester;import java.util.Vector;public class Students { private Vector students; public Students(){ students= new Vector(5); } public void addStudent( Student student){ students.add( student); } public String toString(){ return ((Student)students.get(0)).getName(); }}处理类
- package com.tongda.whl.digester;
- import org.apache.commons.digester.*;
- import org.apache.commons.logging.*;
- import java.io.IOException;
- import java.util.Vector;
- import org.apache.commons.digester.xmlrules.*;
- import org.xml.sax.SAXException;
- public class DigestTest {
- private Log log=LogFactory.getLog(this.getClass());
- public void digestByConfig(){
- Digester digester = DigesterLoader.createDigester(this.getClass().getClassLoader().getResource("studentsRule.xml"));
- try {
- Students a= (Students)digester.parse( this.getClass().getClassLoader().getResourceAsStream("students.xml"));
- System.out.println(a);
- log.info(a);
- } catch (IOException e) {
- e.printStackTrace();
- } catch (SAXException e) {
- e.printStackTrace();
- }
- }
- public static void main(String args[]){
- DigestTest test=new DigestTest();
- test.digestByConfig();
- }
- }
结果显示:Tom
阅读全文
0 0
- java digester-jar类解析xml 简单例子
- 使用Digester类的api进行xml解析的简单例子
- Java 解析 xml 之 Digester
- Digester 类解析 xml 文件
- digester解析器解析xml(java)
- 使用Digester解析XML文件简单范例
- [Java学习]使用digester 解析xml配置文件
- Java XML解析之Digester的使用
- Java XML解析之Digester的使用
- [Java学习]使用digester 解析xml配置文件
- 用Digester类解析XML数据
- struts 的digester类解析xml文件
- xml 解析之digester
- XML解析利器:Digester
- 用Digester解析XML
- 解析xml----Digester
- Digester解析xml文件
- Digester解析xml文档
- 浅谈Spring框架以及Spring的maven配置
- 汇编语言入门三:是时候上内存了
- python面试题汇总(1)
- Android Studio 配置反向代理,解决下载插件,依赖慢问题
- 给初学者的RxJava2.0教程(七)
- java digester-jar类解析xml 简单例子
- windows10+Python3.6的flask学习笔记
- 从0开始一个React/ES6项目-Webpack初探
- 按位(&,|,^,>>,<<)5个运算符
- BZOJ1613 [Usaco2007 Jan]Running贝茜的晨练计划
- 给初学者的RxJava2.0教程(八)
- 数位DP——Luogu3413 SAC#1
- C++ String Toolkit Library (StrTk)
- I2C设备驱动编写,struct i2c_device_id,struct i2c_driver,i2c_add_driver,i2c_register_board_info