【XML】Dom4j的使用
今天我们来介绍一款强大的xml解析工具:dom4j!dom4j介绍:dom4j是jdom的升级版,是一款开源软件,用来读写xml文件,hibernate等很多框架也用它来读写xml配置文件;使用的时候只需要引入dom4j的jar包即可。 dom4j的jar包结构:interface java.lang.Cloneable
interface org.dom4j.Node
interface org.dom4j.Attribute
interface org.dom4j.Branch
interface org.dom4j.Document
interface org.dom4j.Element
interface org.dom4j.CharacterData
interface org.dom4j.CDATA
interface org.dom4j.Comment
interface org.dom4j.Text
interface org.dom4j.DocumentType
interface org.dom4j.Entity
interface org.dom4j.ProcessingInstruction
Attribute dom4j的使用1、创建一个SAXReader对象
SAXReader reader = new SAXReader();
2、 通过read方法读取一个文件 转换成Document对象
Document document = reader.read(new File("src/EPP_02001218.xml"));
3、获取根节点元素对象
Element node = document.getRootElement();
4、获取节点内的内容,比如<book>数学之美</book>,可得到“数学之 美”
node.getText();
5、获取node节点下的第一个名为book的节点
node.element("book");
6、获取节点内的名称,比如<book>数学之美</book>,可得到“book”
node.getName();
7、自带的三种遍历
//枚举node下的所有子节点
for ( Iterator i = node.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();
// do something
}
// 枚举名称为foo的节点
for ( Iterator i = node.elementIterator(foo); i.hasNext();) {
Element foo = (Element) i.next();
// do something
}
// 枚举属性
for ( Iterator i = node.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
// do something
}
8、返回一个Element类型的list,获取node节点下的所有名为book的节点(只包括node的子节点)
List<Element> nodes = node.elements("book");
9、遍历这个list
for (Iterator it = nodes.iterator(); it.hasNext();) {
Element elm = (Element) it.next();
// do something
}
10、遍历一个xml的所有节点
public static void listNodes(Element node) {
System.out.println("当前节点的名称:" + node.getName());
//TODO SOMETHING
Iterator<Element> it = node.elementIterator();
// 遍历
while (it.hasNext()) {
// 获取某个子节点对象
Element e = it.next();
// 对子节点进行遍历
listNodes(e);
}
}
11、把这个node节点的所有内容(包括标签)作为String字符串返回
node.asXML();
此外,还可以增加节点;删除节点;对每个节点、节点中的属性、节点的内容进行增加修改删除; 附:操作xml有一个很重要的方法,就是使用xpath,我还会写一篇文章介绍xpath,从而操作xml更灵活方便,当然dom4j也提供了xpath很好的支持!更多dom4j功能的介绍,请参考: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Oracle删除重复的数据,Oracle数据去重复
- Fastjson是一个Java语言编写的高性能功能完善的J
- 结合Balsamiq Mockups、Napkee和Flex Builder进行
- sqlite浅析2-SQLITE存储分析-SQLITE文件格式分析
- Uboot运行分析(三) .
- c# – Unity – InjectionProperty导致null属性?
- 如何让ruby的xmlrpc客户端忽略SSL证书错误?
- logback logback.xml常用配置详解(三) <filter
- ruby-on-rails – 如何在ActiveRecord中删除具有
- u-boot-2014.10移植第22天----添加nand flash命令