XMl基础(三)---DOM4j 对XMl文档的解析
2015-08-23 22:05
260 查看
目前我所见过的XMl文档的解析方式已经不少了,但是用的很少, 因为我只是在学习,如果仔细的记住每一步, 脑细胞有点不够用,个人感觉,既然是解析XML文档,肯定要根据XML文档的结构来办,不同解析方式的方法虽不同,但目的是一样的。
1)DOM4J
DOM4J是一套非常优秀的Java XMLAPI。使用它可以创建XML文档,也可以解析XML文档。
它在解析XMl文档时,会把XML文档封装成Document对象,装载进内存。
a,获取文档对象:
b,快速遍历:
c,使用xPath快速定位文档数据:
1)DOM4J
DOM4J是一套非常优秀的Java XMLAPI。使用它可以创建XML文档,也可以解析XML文档。
它在解析XMl文档时,会把XML文档封装成Document对象,装载进内存。
a,获取文档对象:
SAXReader reader = new SAXReader(); Document document = reader.read(url); //or Document document = DocumentHelper.parseText( "<root> <child id='1'>James</child> </root>");
b,快速遍历:
Element root = document.getRootElement(); // iterate through child elements of root for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); // do something } // iterate through child elements of root with element name "foo" for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) { Element foo = (Element) i.next(); // do something } // iterate through attributes of root for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); // do something }
c,使用xPath快速定位文档数据:
List list = document.selectNodes( "//foo/bar" ); //选择所有父亲是foo的bar元素 Node node = document.selectSingleNode( "//foo/bar/author" ); String name = node.valueOf( "@name" ) //选择元素的name属性 // public void findLinks(Document document) throws DocumentException { List list = document.selectNodes( "//a/@href" ); for (Iterator iter = list.iterator(); iter.hasNext(); ) { Attribute attribute = (Attribute) iter.next(); String url = attribute.getValue(); } }
相关文章推荐
- LibSVM学习(四)——逐步深入LibSVM 转
- Spring JdbcTemplate Querying examples
- Yarn框架
- 脑洞大开——细胞与编程
- CodeForces #317 (div2) B.Order Book
- 了解adb的基本原理
- jQuery--编辑表格
- 数据库事务并发有关问题
- 个人感觉常用的 VI 命令整理,让手指飞起来吧
- linux延时函数
- 关于权限修饰符
- NuGet学习笔记(3)——搭建属于自己的NuGet服务器(转)
- Tomcat的配置文件 —— server.xml
- poj 2931 Building a Space Station <克鲁斯卡尔>
- 分享安卓任意apk文件代码
- linux修改环境变量
- vbox 安装增强功能 遇到的几个问题的总结
- ASA产品线及性能对比速查
- centos6.5 postgresql-9.4下数据库的迁移
- Part3. OSGi之模块-Bundle