一、基本使用方式
    语法
    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. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  2. 使用dom4j解析XML文档

    dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...

  3. dom4j读写XML文档

    dom4j 最常用最简单的用法(转) 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:http:/ ...

  4. 使用dom4j读取xml连接数据库与之单例模式

    使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...

  5. Dom4j把xml转换成Map(固定格式)

    /** * 可解析list * * @param fileName * @return * @throws Exception */ @SuppressWarnings("unchecked ...

  6. 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题

    首先 关于dom4j的API,有如下: 当然  其中的实体引用有以下: 测试使用环境: 使用Maven搭建web环境,pom.xml文件配置如下: <project xmlns="ht ...

  7. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  8. Dom4j解析xml

    public class Dom4jTest { // Dom4j解析xml // 因为所有的方法都需要Dom树 static Document document = null; static Ele ...

  9. 使用Dom4j进行XML解析

    1  概述 在进行ESB集成项目中,使用到了很多系统的接口,这些接口传输的数据大部分都采用了XML的格式,这样在使用ESB开发服务时就需要对XML数据进行解析或拼接的操作,本文以项目中流程服务为例,讲 ...

随机推荐

  1. C/C++ signal 信号处理函数

    软中断信号(signal,又简称为信号)用来通知进程发生了异步事件.进程之间可以互相通过系统调用kill发送软中断信号. 内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件. 注意,信号只 ...

  2. js命名空间写法

    很早知道这种写法,由于基础面向对象不够扎实一直在回避,但是面对整站这种方法还是有必要会 <div id="div1">111</div> <div i ...

  3. android api doc 一

    Manifest.permission 用于记录相应权限类 ACCESS_CHECKIN_PROPERTIES 允许在登入数据库的时候读写其中的属性表,并上传改变的值 ACCESS_COARSE_LO ...

  4. 用Python开始机器学习(2:决策树分类算法)

    http://blog.csdn.net/lsldd/article/details/41223147 从这一章开始进入正式的算法学习. 首先我们学习经典而有效的分类算法:决策树分类算法. 1.决策树 ...

  5. ubuntu完全卸载apache2

    最近刚接触ubuntu和apache,第一次配置就被apahce搞到完全崩溃,跟着网上的配置修改apache的charset和apache2.conf以后,开始出现访问http://localhost ...

  6. 在使用Vs2013打开Vs2008的解决方案时出现了以下错误:此版本的应用程序不支持其项目类型(.csproj)

    在使用Vs2013打开Vs2008的解决方案时出现了以下错误: 无法打开 因为此版本的应用程序不支持其项目类型(.csproj). 在网络上找到解决方案: 命令行或者Vs自带的命令提示符输入:deve ...

  7. awk学习 (good)

    原文:http://blog.chinaunix.net/uid-23302288-id-3785105.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓 ...

  8. AOP中Advice执行两遍的原因

    在我的spring项目中,Aop的Advice执行了两边,就好像拦截了两遍一样. 原因是:切面应该切到接口的实现类上,而不是接口上

  9. lvs 隧道模式请求没有回应的解决

    众所周知,lvs共有三种转发机制:NAT,IPTUNNELING与DIRECT ROUTING 我在做隧道模式实验时遇到了一个问题,客户端向虚拟ip(即隧道0的ip)发送请求后,lvs服务器接收到了请 ...

  10. Springmvc 上传文件MultipartFile 转File

    转自:http://blog.csdn.net/boneix/article/details/51303207 业务场景:ssm框架 上传文件到应用服务器过程中要传到专有的文件服务器并返回url进行其 ...