JavaWeb_使用dom4j解析、生成XML文件
dom4j 官网
xml解析DOM文档对象模型(树形结构)
DOM方式解析:把xml文档加载到内存形成树形结构,可以进行增删改的操作
Learn
添加jar包进Project中 百度云 传送门 密码:7c8x
1,解析根元素
2,解析有哪些子元素
3,解析一个元素又哪些属性
4,得到元素的文本内容
5,修改、添加、删除某个元素节点
6,修改、添加、删除某个属性
解析的时候可以做的事情
Gary->New->Folder 新建一个lib文件夹
Ctrl C+Ctrl V 将dom4j.jar包复制到lib文件夹中
dom4j.jar->Build Path->Add to Build Path
dom4j解析文件"NewFile.xml"
<?xml version="1.0" encoding="UTF-8"?>
<goodlist>
<good>
<price>12</price>
<name>香蕉</name>
<place>广州</place>
</good>
<good>
<price>39</price>
<name>苹果</name>
<place>北京</place>
</good>
<good>
<price>33</price>
<name>芒果</name>
<place>深圳</place>
</good>
</goodlist>
NewFile.xml
ParseXML解析NewFile.xml中的Dom元素
package Duoxiancheng;
import java.util.Iterator; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class ParseXML {
public static void main(String[] args) throws Exception{
SAXReader reader = new SAXReader();
//获得xml文件路径
Document document = reader.read("src/NewFile.xml");
//获得根节点名
Element root = document.getRootElement();
System.out.println(root.getName());
//获取子元素
Iterator<Element> it = root.elementIterator();
while(it.hasNext()) {
Element ele = it.next();
//获取子元素为name中的文本值
//存在good中没文本会抛出java.lang.NullPointerException空指针异常
if(ele.getName().equals("good")) {
Element name = ele.element("name");
//if(name!=null)
System.out.println(name.getText());
}
//获得子元素名
System.out.println(ele.getName());
Iterator<Attribute> attributes = ele.attributeIterator();
while(attributes.hasNext()) {
Attribute ab = attributes.next();
System.out.println(ab.getName()+":"+ab.getValue());
}
} //xml :Element Attribute
//函数方法输入.后查看
Element ele = null;
//ele.elementIterator(); 遍历方法
//ele. Attribute ab = null;
//ab.
}
}
ParseXML.class
输出:
goodlist
香蕉
good
苹果
good
芒果
good
dom4j生成XML文件
package Duoxiancheng; import java.io.FileWriter;
import java.io.IOException; import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element; public class CreateXML {
public static void main(String[] args) throws IOException {
Document document = DocumentHelper.createDocument();
Element root = document.addElement("root"); Element author1 = root.addElement("author")
.addAttribute("name","Gary")
.addAttribute("localtion", "China")
.addText("Hello Gary");
//author1.addElement("添加子标签name") Element author2 = root.addElement("author")
.addAttribute("name","Bob")
.addAttribute("localtion", "US")
.addText("Hello Bob"); //保存文件,运行后刷新一下工程
FileWriter out = new FileWriter("Gary.xml");
document.write(out);
out.close();
}
}
CreateXML.class
JavaWeb_使用dom4j解析、生成XML文件的更多相关文章
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
- xStream解析生成xml文件学习资料
参考链接: http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- 使用XML序列化器生成XML文件和利用pull解析XML文件
首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...
- 使用Pull解析器生成XML文件和读取xml文件
有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...
- 利用oxygen编辑并生成xml文件,并使用JAVA的JAXB技术完成xml的解析
首先下载oxygen软件(Oxygen XML Editor),目前使用的是试用版(可以安装好软件以后get trial licence,获得免费使用30天的权限,当然这里鼓励大家用正版软件!!!) ...
- Android 生成xml文件及xml的解析
1.生成xml文件的两种方式 (1)采用拼接的方式生成xml(不推荐使用) (2)利用XmlSerializer类生成xml文件 package com.example.lucky.test52xml ...
- 使用Pull解析器生成XML文件
有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...
- dom4j 为生成 XML 的文件添加 xmlns(命名空间) 属性
dom4j 为生成 XML 的文件添加 xmlns(命名空间) 属性 分类: Java2011-06-03 16:14 976人阅读 评论(0) 收藏 举报 xml扩展语言 今天在开发sitemap地 ...
随机推荐
- c++学习笔记之类和对象(一、类定义)
类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言. 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量:创建对象的过程也叫类的实例化.每个对象都是类的一个 ...
- Scala学习一——基础
一.使用Scala解释器 如果以命令行的方式运行,输出的结果会把类型带上,且结果名默认为res0递增.且Scala解释器读到一个解释器求值打印然后读取下一个(这个过程为读取-求值-打印-循环[REPL ...
- Git复习(三)之分支管理、分支策略
创建合并删除分支 我们知道每次提交git都会将他们串成一条线,这条时间线就是一个分支.在git里这条时间线叫做主分支,即master分支 HEAD指向master,master指向最新的提交,所以,H ...
- 102、如何滚动更新 Service (Swarm09)
参考https://www.cnblogs.com/CloudMan6/p/7988455.html 在前面的实验中,我们部署了多个副本的服务,本节将讨论如何滚动更新每一个副本. 滚动更新降低 ...
- MySQL 必备工具使用的6个锦囊妙计!
这款工具是 MySQL 一个重要分支 percona 的,名称叫做 percona-toolkit(一把锋利的瑞士军刀),它呢是一组命令的集合.今儿给大家介绍几个我们在生产环境中最长用到的. 工具包的 ...
- Django 使用request获取浏览器发送的参数(Django编程-5)
1.url:需要正则去匹配 url(r'^index/(num)/$',view.index) 匹配到的参数会自动传入对应的视图函数 也可以给匹配到的参数起名字?P url(r'^index/(?P& ...
- MySQL面试题(二)
● 请你说一说mysql的四种隔离状态 参考回答: Mysql主要包含四种隔离状态: 事务隔离级别 脏读 不可重复读 幻读 读未提交(read-uncommitted) 是 是 是 不可重复读(rea ...
- RHEL6中LVM逻辑卷管理
1.LVM 基本术语 物理卷(physical volume):物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘. 卷组(Volume Group):卷组建立 ...
- date( ) 日期函数
date('Y-m-dT2:00') 实际时间为14:00 date('Y-m-d 2:00') 实际时间为2:00 扩展:每天的时间戳秒数为 86400
- 自学Python5.5-面向对象三大基本特征_继承
自学Python之路-Python基础+模块+面向对象自学Python之路-Python网络编程自学Python之路-Python并发编程+数据库+前端自学Python之路-django 自学Pyth ...