一、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的更多相关文章

  1. Java Web的web.xml文件作用及基本配置(转)

    其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...

  2. java web.xml配置详解

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  3. java web.xml配置详解(转)

    源出处:java web.xml配置详解 1.常规配置:每一个站的WEB-INF下都有一个web.xml的设定文件,它提供了我们站台的配置设定. web.xml定义: .站台的名称和说明 .针对环境参 ...

  4. Java Web中web.xml的作用

    每一个javaWeb工程都有一个web.xml配置文件,那么他到底有什么作用呢?它是每一个web工程都必的必须的吗?   web.xml文件是用来初始化工程配置信息的,比如说welcome页面,fil ...

  5. 利用eclipse新建的java web项目没有部署描述符web.xml文件怎么办?

    原文转自:http://blog.csdn.net/suyu_yuan/article/details/50947007 利用eclipse新建的Java Web项目没有部署描述符web.xml文件, ...

  6. java web开发中的奇葩事web.xml中context-param中的注释

    同事提交了代码.结果除同事之外,其他人全部编译报错.报错说web.xml中配置的一个bean 没有定义.按照报错提示,各种找,无果. 由于代码全部都是提交到svn主干,之前也没有做过备份,只能一步一步 ...

  7. Java web.xml笔记

    Javaweb项目中, web.xml文件其中的各种设置, 就是简单的标注 <?xml version="1.0" encoding="UTF-8"?&g ...

  8. 关于Java Web应用中的配置部署描述符web.xml

    一.web.xml概述 位于每个Web应用的WEB-INF路径下的web.xml文件被称为配置描述符,这个 web.xml文件对于Java Web应用十分重要,每个Java Web应用都必须包含一个w ...

  9. 【转载】Java Web的web.xml文件作用及基本配置

    其实web.xml就是asp.net的web.config一个道理. 说明: 一个web中完全可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的. web.xml文件是用来 ...

随机推荐

  1. Python实用笔记 (3)条件判断

    可以执行多条语句,靠的是缩进原则,看起来也更板扎(注意冒号) age = 3 if age >= 18: print('adult') elif age >= 6: print('teen ...

  2. Executors框架之ScheduledExecutorService实现定时任务

    一.简介 An ExecutorService that can schedule commands to run after a given delay, or to execute periodi ...

  3. 路由网关(Zuul)

    上一篇已经讲了微服务组件中的 分布式配置中心,本章讲述 由JAVA编写的服务路由网关Zuul… - Zuul 路由是微服务体系结构的一个组成部分.例如 / 可以映射到您的Web应用程序,/api/us ...

  4. Java中保留小数点后几位

    不想多说啥了..ε=(´ο`*)))唉  基础都给忘了..今天比赛 跌入十八层地狱.... 用DecimalFormat对象的format方法进行格式化.. package cn.test; impo ...

  5. Java_面试札记

    Java_面试札记  为了不死,我愿献出生命 背景:记录下寄几和friend在2020年Java面试中遇到的problem. 1.MySQL索引结构? 基本上所有的索引都是B-Tree结构,还有一部分 ...

  6. SpringBoot2.x入门:引入web模块

    前提 这篇文章是<SpringBoot2.x入门>专辑的第3篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 主要介绍SpringBoot的web模 ...

  7. web开发,前后分离接口规范

    1. 前言 随着互联网的高速发展,前端页面的展示.交互体验越来越灵活.炫丽,响应体验也要求越来越高,后端服务的高并发.高可用.高性能.高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长 ...

  8. Spring 5.2.x 源码环境搭建(Windows 系统环境下)

    前期准备 1.确保本机已经安装好了 Git 2.Jdk 版本至少为 1.8 3.安装好 IntelliJ IDEA (其他开发工具,如 eclipse.Spring Tool Suite 等也是可以的 ...

  9. centos7 安装部署 Jenkins

    Jenkins 安装部署 1. 安装资源下载 Jenkin镜像地址: http://mirrors.jenkins-ci.org/status.html 选择清华大学镜像地址下载rpm https:/ ...

  10. React-redux使用

    为什么要使用react-redux 由于redux的store与组件的耦合度太高所以,我们用react官方提供的react-redux可以使两者耦合度降低,更好的实现模块化开发. react-redu ...