dom4j解析xml文档
2015-12-24 10:27
281 查看
DOM4J:即Document Object Model for (4)
Java的简称,主要是对xml文档进行解析(可能还有其他功能)的第三方工具包;使用dom4j和xpath表达式操作xml文档将是非常方便,现在举几个例子:
转发至微博 转发至微博
Java的简称,主要是对xml文档进行解析(可能还有其他功能)的第三方工具包;使用dom4j和xpath表达式操作xml文档将是非常方便,现在举几个例子:
假设我们要获取所有的bean,即id和class属性,那么我们可以这 做;
//创建一个sax解析器; SAXReader reader = new SAXReader(); //将类路径下的user.xml文件以流的形式放回; InputStream input = Dom4JXpathTest.class.getClassLoader() .getResourceAsStream("user.xml"); Document document = null; try { //将流对象解析成文档对象; document = reader.read(input); //获取所有的bean元 ;形成一个集合 List nodes = document.selectNodes("/beans/bean"); //遍历这个bean元 的集合; for (Element element : nodes) { //获取bean元 的id属性 String id = element.attributeValue("id"); //获取bean元 的class属性 String className = element.attributeValue("class"); System.out.println(id + "---" + className); } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); }
xpath表达式:大家可以参看w3c组织的文档:http://www.w3school.com.cn/xpath/index.asp
可以说只要我们理解了xpath表达式,整个程序也就理解了,大家也不必刻意去记忆,找到相关文档查一下就可以了。
假设我们要获取所有id属性为user的bean元 ,那么我们可以这 做;
注意xpath://bean[@id='user']这个要理解;
再来一个例子吧,如果 想获得class属性为Student的bean元 ,我们可以这 做;
这里要注意的是,xml文件的路径要放对,即类路径下,也就是src目录下;
相比到这里我们对dom4j解析技术有了一个基本的了解了吧,大多数的框架,比如struts和spring等,用的解析技术都是dom4j;
这也就是我们为什么要 入dom4j.jar包的原 了,顺带提一句,使用xpath解析技术也要相关jar包,即jaxen-1.1-beta-6.jar
//创建一个sax解析器; SAXReader reader = new SAXReader(); //将类路径下的xml文件以流的形式返回; InputStream input = Dom4JXpathTest.class.getClassLoader() .getResourceAsStream("user.xml"); Document document = null; try { //将流对象解析成一个文档对象; document = reader.read(input); Element element = (Element) document .selectSingleNode("//bean[@class='Student']"); System.out.println(element.attributeValue("class")); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); }
//创建一个sax解析器; SAXReader reader = new SAXReader(); //将类路径下是xml文件读取并以流的形式返回或者以URL的形式返回也可以,read方法用的到; InputStream input = Dom4JXpathTest.class.getClassLoader() .getResourceAsStream("user.xml"); Document document = null; try { //读取流,将流装换为文档对象,或者说解析为文档对象; document = reader.read(input); //由于我们知道指定的id值是user,则使用xpath表达式进行 入,返回一个element; Element element = (Element) document .selectSingleNode("//bean[@id='user']"); System.out.println(element.attributeValue("class")); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); }
转发至微博 转发至微博
相关文章推荐
- JavaWeb基础回顾
- Struts2的笔记整理与复习
- Struts2.3.7技术的汇总之六(权限…
- 黑马程序员--Struts2.3.7技术的汇…
- 黑马程序员--Struts2.3.7技术的汇…
- 黑马程序员--Struts2.3.7技术的汇…
- Struts2.3.7技术的汇总之三(类型…
- Struts2.3.7技术的汇总之二(注册…
- 常用 Git 命令清单
- activity栈的关系
- Most vexing parse
- 如何用数据泵导入数据
- jdbc数据库连接信息
- 黑马程序员--Struts2的常量
- a awesome animation plugin
- C#-统计数字中每种数字出现的次数
- 黑马程序员--Struts2复习笔记
- 匿名内部类使用final参数的问题(…
- 黑马程序员--银行业务调度系统笔记…
- 黑马程序员---用阻塞队列实现三个…