DOM4J_ElementHandler
2015-06-08 17:05
148 查看
DOM4J解析XML利用ElementHandler接口。重写onStart()和onEnd()两个方法。
注意:要读取元素节点的内容,必须在onEnd()方法中,因为onStart()只解析到开始节点。
1、解析:
`
`
注意:要读取元素节点的内容,必须在onEnd()方法中,因为onStart()只解析到开始节点。
1、解析:
`
SAXReader saxReader = new SAXReader(); //addHandler必须在read之前,否则无效。 saxReader.addHandler("/students/student/name", new NameHandler()); saxReader.read(new File("students.xml"));
2、addHandler();此方法可以设计访问的节点的路径。 3、JAVA代码如下:
import java.io.File; import org.dom4j.*; import org.dom4j.io.SAXReader; public class ElementHandlerTest { public static void main(String[] args) { SAXReader saxReader = new SAXReader(); saxReader.addHandler("/students/student", new StudentHandler()); try { saxReader.read(new File("students.xml")); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private static class StudentHandler implements ElementHandler { @Override public void onStart(ElementPath path) { Element elt = path.getCurrent(); System.out.println("Found student : "+elt.attributeValue("sn")); path.addHandler("name",new NameHandler()); path.addHandler("age",new NameHandler()); } @Override public void onEnd(ElementPath path) { path.removeHandler("name"); } } private static class NameHandler implements ElementHandler { @Override public void onStart(ElementPath path)//不要获取文本内容。 { System.out.println(path.getPath()); } @Override public void onEnd(ElementPath path)//读取文本内容 { Element elt = path.getCurrent(); System.out.println(elt.getName()+" : "+elt.getText()); } } }
4、students.xml如下:
<?xml version="1.0" encoding="gb2312"?> <?xml-stylesheet type="text/xsl" href = "students.xsl"?> <students> <student sn="01"> <name>张三 <like>lili</like> </name> <age>18</age> </student> <student sn="02"> <name>李四</name> <age>28</age> </student> </students>
`
相关文章推荐
- 用链表实现nodejs的内存对象管理
- $.noop()和$.map()函数
- C# 基础学习第四天
- private static final long serialVersionUID
- What is WCF
- 新时代的“网盘模型”――够快云库
- 黑马程序员—C重点--基本运算
- HDU--2114
- (转)Java web 项目中文件路径
- HDU 1286 找新朋友
- 未来规划
- 泪奔在最后时刻
- c++ pair类型
- 一 100万并发连接服务器笔记之准备篇
- android 数据库事务
- HDU--2114
- Spring mvc-异常javax.servlet.ServletException: Could not resolve view with name 'xxx' in servlet with name 'spring'
- 知识收集
- salt openstack生成随机字符串
- (ML foundation)break point & VC bound