【JavaWeb】XML 文件
XML 文件
简介
XML 是可拓展的标记性语言。
XML 的主要作用:
- 用来保存数据,且这些数据具有自我描述性;
- 作为项目或模块的配置文件;
- 作为网络数据传输的格式,但是现在以 JSON 格式为主。
语法
一般包括五个部分:
- 文档声明;
- 元素(标签);
- XML 属性;
- XML 注释;
- 文本区域(CDATA区)。
文档声明:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>version版本号encodingXML 的文件编码standalone="yes/no"表示这个 XML 文件是否是独立的 XML 文件
XML 属性:
- XML 的标签属性和 HTML 的标签属性是非常类似的,属性可以提供元素的额外信息
- 一个标签上可以书写多个属性。每个属性的值必须使用引号引起来
语法规则:
- 所有 XML 元素都须有关闭标签,即闭合;
- XML 标签对大小写敏感;
- XML 必须正确的嵌套;
- XML 文档必须有根元素;
- XML 的属性值必须加引号;
- XML 的特殊字符,例如
>><<;
文本区域(CDATA区):
- CDATA 语法可以告诉 XML 解析器,CDATA 里的文本内容,只是纯文本,不需要 XML 语法解析;
- 格式:
<![CDATA[ 这里可以把你输入的字符原样显示,不会解析 XML ]]>
XML 解析
因为 XML 可扩展的标记语言,不管是 HTML 文件还是 XML 文件它们都是标记型文档,都可以使用 w3c 组织制定的 DOM 技术来解析。
现在比较常用的解析技术是 dom4j,这是一个第三方解析技术。
dom4j
dom4j 是一个用于处理XML的开源框架,该框架与 XPath 集成在一起,并完全支持 DOM,SAX,JAXP 和 Java 平台。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<books>
<book id="SN124156869438690">
<name>Java 编程思想</name>
<author>XPS</author>
<price>30.9</price>
</book>
<book id="SN152353246262166">
<name>Effective Java</name>
<author>GKO</author>
<price>20.9</price>
</book>
</books>
package cn.parzulpan.java;
/**
* @Author : parzulpan
* @Time : 2020-12-06
* @Desc :
*/
public class Book {
private String id;
private String name;
private String author;
private Double price;
public Book() {
}
public Book(String id, String name, String author, Double price) {
this.id = id;
this.name = name;
this.author = author;
this.price = price;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
}
package cn.parzulpan.java;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.util.ArrayList;
import java.util.List;
/**
* @Author : parzulpan
* @Time : 2020-12-06
* @Desc : dom4j 测试
*/
public class Test {
public static void main(String[] args) {
Test test = new Test();
List<Book> books = test.readXML();
books.forEach(System.out::println);
}
// 获取Document 对象
public Document getDocument() {
// SaxReader 对象用于读取 xml 文件
SAXReader saxReader = new SAXReader();
Document document = null;
try {
document = saxReader.read("XML/xml/books.xml");
} catch (DocumentException e) {
e.printStackTrace();
}
System.out.println(document);
return document;
}
// 读取文件生成 Book 类
public List<Book> readXML() {
ArrayList<Book> list = new ArrayList<>();
Document document = getDocument();
// 通过 Document 对象,拿到 XML 的根元素对象
Element rootElement = document.getRootElement();
// 通过根元素对象,获取所有的 book 标签对象
List<Element> books = rootElement.elements("book");
for (Element book : books) {
// 它将当前元素转换成为 String 对象
System.out.println(book.asXML());
// 拿到 book 的属性值
String id = book.attributeValue("id");
// 拿到 book 下面的 name 元素对象
Element name = book.element("name");
Element author = book.element("author");
Element price = book.element("price");
// getText() 方法拿到起始标签和结束标签之间的文本内容
list.add(new Book(id, name.getText(), author.getText(), Double.parseDouble(price.getText())));
}
return list;
}
}
练习和总结
【JavaWeb】XML 文件的更多相关文章
- JavaWeb学习——web.xml文件说明
JavaWeb学习——web.xml文件说明 摘要:本文主要学习了web.xml文件的作用以及如果配置. 是什么 web.xml文件是用来在JavaWeb项目里面初始化配置信息的,比如:访问的首页.S ...
- javaweb web.xml文件详解
web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等 ...
- Java-Web DOM方式解析xml文件
XML DOM 树形结构: DOM 节点 根据 DOM,XML 文档中的每个成分都是一个节点. DOM 是这样规定的: 整个文档是一个文档节点 每个 XML 元素是一个元素节点 包含在 XML 元素中 ...
- JavaWeb:实现文件上传
JavaWeb:实现文件上传 理解文件上传: 1.上传文件就是把客户端的文件发送给服务器端. 2.HTTP响应的正文部分最常见的是HTML文档,但是也可以是其他任意格式的数据,如图片和声音文件中的数据 ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- JavaWeb 之文件的上传下载
又到了每周更新博客的时候了,每看到自己发布的随笔阅读量上涨的时候就特别开心,我也会尽自己的努力提高自己的水平,总结出通俗易读的学习笔记,还望大家能多多支持!!! ------------------- ...
- Spring中利用applicationContext.xml文件实例化对象和调用方法
Spring中实例化对象和调用方法入门 1.jar包和xml的准备 已上传至百度云盘,链接: https://pan.baidu.com/s/1CY0xQq3GLK06iX7tVLnp3Q 提取码: ...
- [android] 采用pull解析xml文件
/***********2016年5月6日 更新**********************/ 知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别? 刘吉财: ...
- 深入分析JavaWeb Item40 -- 文件上传和下载
在Web应用系统开发中,文件上传和下载功能是很经常使用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传.浏览器在上传的过程中是将文件以流的形式提交到server端的.假设 ...
随机推荐
- window下kettle安装
参考这篇文章 http://note.youdao.com/noteshare?id=a8c536ba952a48d60d7ea8f2cc61a94b
- REHの收藏列表
搬运自本人的AcWing,所以那里的文章会挺多. 友链(同类文章) :bztMinamoto 世外明月 mlystdcall 新人手册:AcWing入门使用指南 前言 有看到好文欢迎推荐(毛遂自荐也可 ...
- MySQL技术内幕InnoDB存储引擎(五)——索引及其相关算法
索引概述 索引太多可能会降低运行性能,太少就会影响查询性能. 最开始就要在需要的地方添加索引. 常见的索引: B+树索引 全文索引 哈希索引 B+树索引 B+树 所有的叶子节点存放完整的数据,非叶子节 ...
- Linux 上安装 mysql
1.通过 yum 命令安装 mysql 可以先通过 yum list |grep mysql 方式查看有哪些版本的 mysql 2.安装 mysql yum install mysql-server ...
- 微信小程序下拉加载下一页
小程序做得多了,有些常用功能就有必要记录一下 请看详解: 微信小程序之下拉触底时加载下一页 wxml参考: <scroll-view class='dataContainer' scroll-y ...
- 在Chrome、Firefox等高版本浏览器中实现低延迟播放海康、大华RTSP
一.背景 现在到处是摄像头的时代,随着带宽的不断提速和智能手机的普及催生出火热的网络直播行业,新冠病毒的大流行又使网络视频会议系统成为商务会议的必然选择,因此RTSP实时视频流播放及处理不再局限于安防 ...
- 初阶项目一-集成一套linux系统:红帽系统,LVM分区,Apache服务,MySQL服务,数据定时备份脚本
目录 一.项目目标 二.实施工具 三.项目实施计划 四.安装rhel7.5操作系统 4.1 配置虚拟机 4.2 安装操作系统 4.3 系统配置 4.3.1 网络配置 4.3.2 修改主机名 4.3.3 ...
- Elastic Search 学习之路(一)
一.基本概念及缘由 1.Sql vs nosql SQL:Structured Query Language Nosql:Not only SQL Relationship DB Relations: ...
- JUC(三):JUC包下锁概念
线程不安全集合类 ArrayList List是线程不安全的集合类,底层是Object数组实现,初始化容量是10(其实是一个空数组,第一次扩容时,将数组扩容为10),其后每次扩容大小为当前容量的一半( ...
- spark streaming 消费 kafka入门采坑解决过程
kafka 服务相关的命令 # 开启kafka的服务器bin/kafka-server-start.sh -daemon config/server.properties &# 创建topic ...