一、基本使用方式
语法
1、获取根元素
Element root = document.getRootElement();

2、获取某个元素下的子元素
Element db_element = root.element("db");

3、获取元素的子元素集合1
List<Element> db_list = db_element.elements();//所有子元素

4、获取元素属性的值
element.attributeValue("name");

5、获取元素的内容
element.getText();

6、获取元素的子元素集合2
element.elements("user");//指定名称的子元素集合

实战

<users><user no="2017"><name>狗蛋</name><age>17</age></user><user no="2018"><name>李狗蛋</name><age>19</age></user>
</users>

1、导入dom4j的jar包,遍历

public void test4j() throws DocumentException {
//创建解析器SAXReader reader = new SAXReader();org.dom4j.Document document = reader.read(new File("src/userInfo.xml"));org.dom4j.Element root = document.getRootElement();List<org.dom4j.Element> list = root.elements();for(org.dom4j.Element e:list){
//获取属性值String no = e.attributeValue("no");String name = e.element("name").getText();String age = e.element("age").getText();System.out.println(no+name+age);}
}

二、选择器使用

语法
1、获取节点集合:如下,获取所有节点的name属性的集合
List<Node> list= document.selectNodes("users/user/name");

2、获取节点的节点名称
node.getName();

3、获取节点的值
node.getText();

4、获取节点的属性值
node.valuesOf("@no");

实战

2、还需导入jaxen-1.1-beta-6.jar,进行xpath操作
public void testdom4j_xpath() throws DocumentException {SAXReader reader = new SAXReader();org.dom4j.Document document = reader.read(new File("src/userInfo.xml"));List<Node> list= document.selectNodes("users/user/name");for(Node node:list){String qname = node.getName();String name = node.getText();System.out.println(qname+"--"+name);}List<org.dom4j.Node> list1 = document.selectNodes("users/user");for(Node node:list1){String no = node.valueOf("@no");System.out.println(no);}
}

三、创建,修改XML文档
语法
1、获取document对象
Document document = DocumentHelper.createDocument();

2、创建根元素
 Element root = document.addElement("users");  

3、添加子节点
Element e = element.addElement("name");

4、设置属性
Element e = element.setText("张三");

5、删除节点e的子节点element
e.remove(element);

四、属性

语法
1.取得某节点下的某属性          
Attribute attribute=element.attribute("id");

2.取得属性的文字
    String text=attribute.getText();

3.删除某属性
Attribute attribute=root.attribute("size"); root.remove(attribute);

4.遍历某节点的所有属性     
Element root=document.getRootElement();
for(Iterator it=root.attributeIterator();it.hasNext();){        Attribute attribute = (Attribute) it.next();         String text=attribute.getText();        System.out.println(text);
}

5.设置某节点的属性和文字.  
newMemberElm.addAttribute("name", "sitinspring");

6.设置属性的文字   
Attribute attribute=root.attribute("name");   attribute.setText("csdn");

DOM4J对于XML的用法相关推荐

  1. Dom4j操作XML

    dom4j帮助文档在dom4j-1.6.1/docs/guide.html文件里面,全部是英文,但是基本上应该能看懂. 1.  四种操作xml的方式:SAX,DOM,JDOM,DOM4J. 2.  D ...

  2. 使用dom4j解析XML例子

    包括三个文件:studentInfo.xml(待解析的xml文件), Dom4jReadExmple.java(解析的主要类), TestDom4jReadExmple.java(测试解析的结果) 代 ...

  3. dom4j读写xml文件

    dom4j读写xml文件 首先我们给出一段示例程序: import java.io.File; import java.io.FileWriter; import java.util.Iterator ...

  4. 【学习笔记】关于DOM4J:使用DOM4J解析XML文档

    一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...

  5. Dom4j 解析Xml文档及XPath查询 学习笔记

    本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...

  6. 2.3 使用 dom4j 对 xml文件进行 dom 解析

    1 // 使用dom4j对XML文档进行解析 CRUD 2 public class Demo1 { 3 4 //读取XML文档中第二本书的书名 <书名>javaWEB</书名> ...

  7. Java——DOM4J生成XML

    DOM4J生成XML 创建Document 对象,代表整个 XML 文档 //创建Document 对象,代表整个 xml文档 Document document = DocumentHelper.c ...

  8. DOM4J解析XML文档、Document对象、节点对象节点对象属性、将文档写入XML文件(详细)...

    Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM开发的.与JDOM不同的是,dom4j使用接口和抽象的人分离出来而后独立基类,虽然Dom4j的API相对要复杂一些,但它提供了 ...

  9. DOM4j读取XML文件(SAXReader)

    为什么80%的码农都做不了架构师?>>>    DOM4j读取XML文件(SAXReader) 一.一个很好的SAXReader读写xml文件的例题: 总结: Document do ...

最新文章

  1. 聊聊Elasticsearch的ExponentiallyWeightedMovingAverage
  2. 爱立信:用什么保持全球老大的地位?
  3. java启动scrapy爬虫,爬虫入门之Scrapy 框架基础功能(九)详解
  4. python 系统学习实例1.1 - 华氏度与摄氏度的转换
  5. linux实验目的能学会什么意思,Linux实验.doc
  6. VSFTP配置详解+虚拟用户的支持
  7. 2000年考研英语阅读理解文章三
  8. python嵌套列表法实现树_python – 将嵌套的括号树转换为嵌套列表
  9. maven版本_Maven – 工作原理
  10. PGer看过来!亚洲最大的PG技术盛会重磅来袭!墨天轮全球同步直播!
  11. IDEA中如何给含有main方法的普通类设置JVM参数
  12. OGRE: OgreOverlaySystem.h: No such file or directory
  13. uni-app 简介
  14. Windows动态库DllMain
  15. php正则匹配中文和英文字母,PHP正则匹配中文字母数字正则的表达式
  16. Oracle 的next_day函数详解
  17. 两群羊和一只狼,两只狮子
  18. 门控时钟电路(Intergrated clock gating)
  19. c罗python可视化分析_关于C罗“冲刺速度”这种隐私问题,我们在Kaggle上找到了数据集,然后。。。...
  20. style 对象 微信小程序_微信小程序中一些JS常识

热门文章

  1. 怎么提高大表和小表的连接查询效率?
  2. 此问题可能是由配置更改或安装另一个扩展导致的
  3. socket-accept
  4. 【转】js获取url传值
  5. oracle何时使用to_date函数
  6. 线程基类的构建与代码实践
  7. Docker背后的内核知识:命名空间资源隔离
  8. STL源码剖析之算法:lower_bound
  9. 为什么在中国“公有云”落地那么难?
  10. 盛大 牛人 blog