Java Web(3)-XML
一、XML简介
1. 什么是xml?
xml 是可扩展的标记性语言
2. xml的作用?
- 用来保存数据,而且这些数据具有自我描述性
- 它还可以做为项目或者模块的配置文件
- 还可以做为网络传输数据的格式(现在 JSON 为主)
二、XML语法
首先创建一个xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!--
文件的声明
version="1.0" 表示xml的版本
encoding="UTF-8" 表示xml文件本身的编码
-->
图书有 标识,书名,有作者,价格的信息
<?xml version="1.0" encoding="UTF-8" ?>
<!--
文件的声明
version="1.0" 表示xml的版本
encoding="UTF-8" 表示xml文件本身的编码
-->
<!-- 多个图书信息-->
<books>
<!--一个图书的基本信息-->
<book sn="SN123454321"> <!--属性值-->
<name>雍正王朝</name>
<author>二月河</author>
<price>99</price>
</book>
<book sn="SN987654321">
<name>康熙大帝</name>
<author>二月河</author>
<price>99</price>
</book>
</books>
- 注释和html一样
- 其他的基本上看看就懂了
注意:
- XML 文档必须有根元素,并且是唯一的,就如上面的books一样,
三、XML解析
这里主要就使用dom4j技术来解析
首先需要到官网找到这个jar包,直接复制到当前的模块下即可
1. Dom4j编程步骤
- 先加载 xml 文件创建 Document 对象
- 通过 Document 对象拿到根元素对象
- 通过根元素.elelemts(标签名); 可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象
- 找到你想要修改、删除的子元素,进行相应在的操作
- 保存到硬盘上或者其他地方
2. 获取document对象
1. 首先创建一个lib包,直接把网上找到的dom4j的jar包复制到lib下,然后

2. 写一个需要解析的books.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<books>
<book sn="SN123454321">
<name>雍正王朝</name>
<author>二月河</author>
<price>99</price>
</book>
<book sn="SN987654321">
<name>康熙大帝</name>
<author>二月河</author>
<price>99</price>
</book>
</books>
3. 获取Document对象的代码
@Test
public void test1() throws DocumentException {
// 1. 先创建一个SAXReader对象
SAXReader saxReader = new SAXReader();
// 2. 这个对象用来读取xml文件,返回一个document
Document read = saxReader.read("src/books.xml");
// 3. 打印到控制台,查看是否成功
System.out.println(read);
}
3. 遍历标签获取内容
需要分四步操作:
- 通过创建 SAXReader 对象。来读取 xml 文件,获取 Document 对象
- 通过 Document 对象。拿到 XML 的根元素对象
- 通过根元素对象。获取所有的 book 标签对象
- 遍历每个 book 标签对象。然后获取到 book 标签对象内的每一个元素,再通过 getText() 方法拿到起始标签和结 束标签之间的文本内容
首先写一个Book类,用于存放数据
package com.md.java;
/**
* @author MD
* @create 2020-07-24 8:45
*/
public class Book {
private String sn;
private String name;
private String author;
private Double price;
public Book() {
}
public Book(String sn, String name, String author, Double price) {
this.sn = sn;
this.name = name;
this.author = author;
this.price = price;
}
public String getSn() {
return sn;
}
public void setSn(String sn) {
this.sn = sn;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"sn='" + sn + '\'' +
", name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
}
读取xml文件中的内容,xml文件就是上面的books.xml
/**
* 读取books.xml文件生成的Book类
*/
@Test
public void test2() throws DocumentException {
// 1. 读取文件,在Junit测试中,相对路径是从模块名开始的
SAXReader saxReader = new SAXReader();
Document document = saxReader.read("src/books.xml");
// 2. 通过Document对象获取根元素
Element rootElement = document.getRootElement();
//System.out.println(rootElement);
// 3. 通过根元素读取book标签对象
// element()和elements()都是通过标签名查找子元素
List<Element> books = rootElement.elements("book");
// 4. 遍历处理book标签转换为Book类
for (Element book:books){
// asXML()把标签对象转换为标签字符串
// System.out.println(book.asXML());
// 5. 获取到了这个标签
Element nameElement = book.element("name");
// 获取这个标签的文本内容
String name = nameElement.getText();
// 或者可以直接获取标签里的文本内容
String price = book.elementText("price");
String author = book.elementText("author");
// 获取属性值
String sn = book.attributeValue("sn");
// 获取完成之后就可以生成了,注意价格是double类型的
System.out.println(new Book(sn,name,author,Double.parseDouble(price)));
}
}
Java Web(3)-XML的更多相关文章
- Java Web的web.xml文件作用及基本配置(转)
其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...
- java web.xml配置详解
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- java web.xml配置详解(转)
源出处:java web.xml配置详解 1.常规配置:每一个站的WEB-INF下都有一个web.xml的设定文件,它提供了我们站台的配置设定. web.xml定义: .站台的名称和说明 .针对环境参 ...
- Java Web中web.xml的作用
每一个javaWeb工程都有一个web.xml配置文件,那么他到底有什么作用呢?它是每一个web工程都必的必须的吗? web.xml文件是用来初始化工程配置信息的,比如说welcome页面,fil ...
- 利用eclipse新建的java web项目没有部署描述符web.xml文件怎么办?
原文转自:http://blog.csdn.net/suyu_yuan/article/details/50947007 利用eclipse新建的Java Web项目没有部署描述符web.xml文件, ...
- java web开发中的奇葩事web.xml中context-param中的注释
同事提交了代码.结果除同事之外,其他人全部编译报错.报错说web.xml中配置的一个bean 没有定义.按照报错提示,各种找,无果. 由于代码全部都是提交到svn主干,之前也没有做过备份,只能一步一步 ...
- Java web.xml笔记
Javaweb项目中, web.xml文件其中的各种设置, 就是简单的标注 <?xml version="1.0" encoding="UTF-8"?&g ...
- 关于Java Web应用中的配置部署描述符web.xml
一.web.xml概述 位于每个Web应用的WEB-INF路径下的web.xml文件被称为配置描述符,这个 web.xml文件对于Java Web应用十分重要,每个Java Web应用都必须包含一个w ...
- 【转载】Java Web的web.xml文件作用及基本配置
其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...
随机推荐
- maven在windows10系统下安装配置和打包war
maven下载地址:http://maven.apache.org/ 下载完成解压到 D盘 目录下D:\apache-maven-3.5.0\bin 配置maven环境变量: M2_HOME D: ...
- 苹果XR手机的音频体验测试总结
苹果XR手机的音频 苹果XR算是苹果手机历史上一个里程碑的型号了,是苹果憋了两年的大招,连苹果9的称号就不要了.直接是X.说明苹果对它给予的希望很大.作为一个音频算法工程师,一直想体验一下XR的音 ...
- (私人收藏)2019WER积木教育机器人赛(普及赛)解决方案-(全套)获取能源核心
2019WER积木教育机器人赛(普及赛)解决方案-(全套)获取能源核心 含地图,解决程序,详细规则,搭建方案EV3;乐高;机器人比赛;能力风暴;WER https://pan.baidu.com/s/ ...
- 每日一题 - 剑指 Offer 46. 把数字翻译成字符串
题目信息 时间: 2019-07-02 题目链接:Leetcode tag: 动态规划 难易程度:中等 题目描述: 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ...
- web开发,前后分离接口规范
1. 前言 随着互联网的高速发展,前端页面的展示.交互体验越来越灵活.炫丽,响应体验也要求越来越高,后端服务的高并发.高可用.高性能.高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长 ...
- List集合的遍历方式
遍历List集合的三种方法 List list = new ArrayList(); list.add("aaa"); list.add("bbb"); lis ...
- postman-7-前置请求脚本
前面讲了,tests初如何校验请求之后返回值是否正确 那前置脚本,就是处理,请求之前接口该如何处理,什么时候会用到呢? 比如:接口字段time,需要填入时间,而且这个是需要当前时间的,: 需要达到自动 ...
- dva的简介
dva的定义 dva 是基于现有应用架构 (redux + react-router + redux-saga 等)的一层轻量封装; redux 他是react当中的仓库,如果熟悉vue的话,他的功能 ...
- 自定义Mybatis自动生成代码规则
前言 大家都清楚mybatis-generate-core 这个工程提供了获取表信息到生成model.dao.xml这三层代码的一个实现,但是这往往有一个痛点,比如需求来了,某个表需要增加字段,肯定需 ...
- python爬虫学习01--电子书爬取
python爬虫学习01--电子书爬取 1.获取网页信息 import requests #导入requests库 ''' 获取网页信息 ''' if __name__ == '__main__': ...