Digester入门
来源:互联网 发布:层次分析法软件 编辑:程序博客网 时间:2024/06/11 23:47
官方文档:http://commons.apache.org/digester/guide/core.html
测试小程序:
package com.zizhu;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.commons.digester3.Digester;import org.apache.commons.digester3.ObjectCreateRule;import org.apache.commons.digester3.Rule;import org.apache.commons.digester3.SetNextRule;import org.apache.commons.digester3.SetPropertiesRule;import org.xml.sax.SAXException;import com.zizhu.model.Child;import com.zizhu.model.Parent;import com.zizhu.model.ServletBean;import com.zizhu.model.ValueWrap;public class Client {/** * @param args */public static void main(String[] args) {InputStream is = Client.class.getClassLoader().getResourceAsStream("user.xml");//parse user.xmlDigester dig1 = new Digester();//创建对象Rule parent = new ObjectCreateRule("com.zizhu.model.Parent");Rule child = new ObjectCreateRule("com.zizhu.model.Child");//设置属性Rule parentProp = new SetPropertiesRule();Rule childProp = new SetPropertiesRule();//建立父子关系Rule relation = new SetNextRule("addChildren");dig1.addRule("parent", parent);dig1.addRule("parent", parentProp);dig1.addRule("parent/child", child);dig1.addRule("parent/child", childProp);dig1.addRule("parent/child", relation);Parent p = null;try {p = dig1.parse(is);} catch (IOException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();}finally{try {is.close();} catch (IOException e) {}}System.out.println(p.getName());List<Child> children = p.getChildren();for(Child c : children){System.out.println("child : id = " + c.getId() + ", name="+c.getName() + ", age = " + c.getAge());}//模拟加载web.xmlInputStream is2 = Client.class.getClassLoader().getResourceAsStream("web.xml");//parse user.xmlDigester dig2 = new Digester();dig2.addObjectCreate("web-app/servlet", "com.zizhu.model.ServletBean");dig2.addCallMethod("web-app/servlet/servlet-name", "setServletName", 0);//0表示将内容解析为单个参数dig2.addCallMethod("web-app/servlet/servlet-class", "setServletClass", 0);dig2.addCallMethod("web-app/servlet/init-param", "addInitParam", 2);//2表示接下来设置2个参数dig2.addCallParam("web-app/servlet/init-param/param-name", 0);dig2.addCallParam("web-app/servlet/init-param/param-value", 1);ServletBean servlet = null;try { servlet = dig2.parse(is2);} catch (IOException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();}finally{try {is2.close();} catch (IOException e) {}}System.out.println(servlet.getServletName());System.out.println(servlet.getServletClass());List<ValueWrap> initParams = servlet.getInitParams();for(ValueWrap wrap : initParams){System.out.println("name - " + wrap.getName() + ", value - " + wrap.getValue());}}}
- Digester入门
- digester
- Digester
- Digester
- 关于Digester
- xml | Digester
- digester例子
- digester 模式
- commons-digester
- Commons Digester
- Apache Digester
- digester使用方法
- digester实例
- digester二
- Digester fails
- Digester原理
- Digester 原理
- Apache Digester(-)
- mysql学习足迹之二
- mysql学习足迹之三【MYSQL主从服务器配置说明(master&slave)】
- 操作系统大型实验进展(7)-----C语言函数fopen
- Jquery
- mysql用户创建和授权
- Digester入门
- wireless domain亦称 wireless region
- python 字符串反转
- 什么是Clean C
- Video简介学习
- 浅谈云计算与智慧城市建设
- PHP isset()与empty()的区别
- Oracle如何快速、大量的插入数据
- Linux获取IP_网关_DNS