package dom;

import java.io.FileWriter;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;

public class Dom4jDemo {
@Test
public void readDemo() throws Exception{
SAXReader read=new SAXReader();
Document dom=read.read("./xml/user.xml");

//获得根元素;
Element en= dom.getRootElement();
//获取里面中的子元素
Iterator<Element> it=en.elementIterator();
while(it.hasNext()){
Element eUser=it.next();
String id=eUser.attributeValue("id");//这里还可以分开得到,下面的name和age也是一样

// String id1=eUser.attribute("id").getValue();

String name=eUser.elementText("name");
String age=eUser.elementText("age");
System.out.println("id="+id+" name="+name+" age="+age);

}

}
//这里是创建一个新节点
@Test
public void creatDemo() throws Exception{
SAXReader read=new SAXReader();
Document dom=read.read("./xml/user.xml");

Element en=dom.getRootElement();

Element eUser=en.addElement("user");
eUser.addAttribute("id" , "b001");
eUser.addElement("name").addText("xiaoming");
//这里有一个小细节,这里的setText最终还是调用addText所以他们的效果是一样的
eUser.addElement("age").setText("32");

//把贴加的元素放入到文件中存储起来
XMLWriter we=new XMLWriter(new FileWriter("./xml/user.xml"));
we.write(dom);
we.close();

}
}

--------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="A001">
<name>Jack</name>
<age>23</age>
</user>
<user id="A002">
<name>张三</name>
<age>22</age>
</user>
<user id="A003">
<name>Mike</name>
<age>32</age>
</user>
<user id="B001">
<name>李四</name>
<age>25</age>
</user>
<user id="b001">
<name>xiaoming</name>
<age>32</age>
</user>
</users>

dom4j中对xml的查增的更多相关文章

  1. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  2. C#程序:如何创建xml文件以及xml文件的增、删、改、查

    其实今天的这篇博文 ,是对请几天发表的博文的一个总结,只是想把xml文件的增删改查结合起来,这样更容易让初学的朋友理解,废话也不多说了,开始吧! 下面是我把我在vs环境下写的代码ctrl+V然后ctr ...

  3. 使用xml实现的增删改查功能

    实体类: package vo; public class Contact { private String id; private String name; private String gende ...

  4. kibana的Dev Tool中如何对es进行增删改查

    kinaba Dev Tool中对es(elasticSearch)进行增删改查 一.查询操作 查询语句基本语法 以下语句类似于mysql的: select * from  xxx.yyy.topic ...

  5. Java中使用DOM4J来生成xml文件和解析xml文件

    一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...

  6. (转)Dom4j中的中文编码问题

    一.“中文问题没商量”之Dom4j中的编码问题  本文主要讲述的是Dom4j在把Document保存到文件过程中出现的一个中文问题,本文跟<80前>一文一样,以Spring项目无关,请“春 ...

  7. sql server中对xml进行操作

    一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...

  8. dom4j如何解析XML文件

    最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是通用的,仅供参考哦~~ 首先说:dom4j是一个java的XML ...

  9. Java中解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM ...

随机推荐

  1. Spring顶级项目以及Spring cloud组件

    作为java的屌丝,基本上跟上spring屌丝的步伐,也就跟上了主流技术. spring 顶级项目: Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说 ...

  2. Eclipse开发Java EE应用

    设置Web服务器 添加Web服务器 以上两步可以直接由下面这步完成: or 创建Web工程 建立JSP文件供测试 发布Java Web工程 方法1:在下方Server中添加 方法2:右击左边项目导航树 ...

  3. Android Root原理

    概述:通过阅读本文可以深刻理解Android系统中获得Root权限的方法和原理.本文会详细介绍Root的目的,原理和代码层次的具体实现方法. Android Root介绍: 1. Root目的 手机获 ...

  4. Grid表格属性

    <Grid> <Grid.ColumnDefinitions> <!--添加列--> <ColumnDefinition Width="/> ...

  5. BZOJ_1607_ [Usaco2008_Dec]_Patting_Heads_轻拍牛头_(筛数)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1607 给出一组n个数,求每个数能被多少个其他的数整除. 分析 暴力一点的做法就是每个数去筛它的 ...

  6. 使用 Azure Site Recovery 将内部部署虚拟化工作负荷迁移至 Azure

    ABHISHEK A. HEMRAJANI 云 + Enterprise 项目经理 我们最近发布了微软的灾难恢复即服务 (DRaaS) 产品的预览版 - Azure SiteRecovery.此产 ...

  7. uniq linux下去除重复行命令

    一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉.linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个.使用uniq的时候要注意以下二点 1,对文本操 ...

  8. FCLK PCLK HCLK

    一.对clock的基本认识 1 s3c2410的clock & power management模块包含三个部分:clock control.usb control.power control ...

  9. 微软Build2014大会干货总结-2

    继昨天微软在Build2014大会上宣布一系列重磅举措后,第二天的主题是微软云(Microsoft Azure)及开发者战略,CSDN记者继续从旧金山现场给您发来一线报道. 第二天的主角是新上任的微软 ...

  10. Codeforces335B - Palindrome(区间DP)

    题目大意 给定一个长度不超过5*10^4的只包含小写字母的字符串,要求你求它的回文子序列,如果存在长度为100的回文子序列,那么只要输出长度为一百的回文子序列即可,否则输出它的最长回文子序列 题解 这 ...