【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功能的介绍,请参考: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |