【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端的.假设 ...
随机推荐
- 【题解】「CF1352A」Sum of Round Numbers
应该是纯模拟吧. 直接输入一个字符串,然后一位一位看,如果不是0,就 k++,并计算这个数的真实的值,最后输出就行了. #include<iostream> #include<cst ...
- Spark3.0中Dates和Timestamps
Spark3.0使用的是预公历,而之前都是儒略历和公历的混合(即1582年之前的日期使用儒略历,1582年之后使用公历,java.sql.Date这个API用的就是这种,而Java8里使用java.t ...
- x64架构下Linux系统函数调用
原文链接:https://blog.fanscore.cn/p/27/ 一. 函数调用相关指令 关于栈可以看下我之前的这篇文章x86 CPU与IA-32架构 在开始函数调用约定之前我们需要先了解一下几 ...
- Spark SQL 小文件问题处理
在生产中,无论是通过SQL语句或者Scala/Java等代码的方式使用Spark SQL处理数据,在Spark SQL写数据时,往往会遇到生成的小文件过多的问题,而管理这些大量的小文件,是一件非常头疼 ...
- react第十七单元(redux和组件之间的通信,react-redux的相关api的用法)
第十七单元(redux和组件之间的通信,react-redux的相关api的用法) #课程目标 什么是redux-redux react-redux的作用是什么 react-redux如何应用 #知识 ...
- 基于Python PIL实现简单图片格式转化器
基于Python PIL实现简单图片格式转化器 目录 基于Python PIL实现简单图片格式转化器 1.简介 2.前期资料准备 2.1.1如何实现图片格式转换? 2.1.2如何保存需要大小的图片? ...
- 开源OLAP引擎对比
什么是olap 01.绝大多数请求都是读请求 02.数据以相当大的批次(>1000行)更新,而不是单行更新;或者它根本没有更新 03.数据已添加到数据库,但不会进行修改 04.对于读取,每次查询 ...
- nc监控实现调用受害者cmd
正向连接 受害者 IP 是直接暴漏在公网的 或者你们同属于一个内网 受害者:nc.exe -vlp 1234 -e cmd.exe 攻击者 nc 192.168.1.1 1234 nc -lvvp 8 ...
- ActiveMq PUT任意文件上传漏洞(CVE-2016-3088)漏洞复现
漏洞原理 该漏洞出现在fileserver应用中,ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录.Fileserver支持写入文件(不解析jsp),但是 ...
- Java进阶:基于TCP通信的网络实时聊天室
目录 开门见山 一.数据结构Map 二.保证线程安全 三.群聊核心方法 四.聊天室具体设计 0.用户登录服务器 1.查看当前上线用户 2.群聊 3.私信 4.退出当前聊天状态 5.离线 6.查看帮助 ...