【JavaWeb】XML 文件
XML 文件
简介
XML 是可拓展的标记性语言。
XML 的主要作用:
- 用来保存数据,且这些数据具有自我描述性;
- 作为项目或模块的配置文件;
- 作为网络数据传输的格式,但是现在以 JSON 格式为主。
语法
一般包括五个部分:
- 文档声明;
- 元素(标签);
- XML 属性;
- XML 注释;
- 文本区域(CDATA区)。
文档声明:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
version
版本号encoding
XML 的文件编码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端的.假设 ...
随机推荐
- vue Export2Excel 导出文件
使用需要引入这些js 在src目录下创建一个文件(vendor)进入Blob.js和Export2Excel.js npm install -S file-saver 用来生成文件的web应用程序 n ...
- 什么叫做ECS云服务器?
什么是ECS云服务器,阿里ECS云服务器与虚拟主机的区别是什么.以前,ECS云服务器还不带"云"字,只是叫做"服务器",毫无疑问"ECS云服务器&qu ...
- IOS开发中设置导航栏主题
/** * 系统在第一次使用这个类的时候调用(1个类只会调用一次) */ + (void)initialize { // 设置导航栏主题 UINavigationBar *navBar = [UINa ...
- 前端:css3的过渡与动画
一.css3过渡知识 (一).概述 1.CSS3过渡是元素从一种样式逐渐改变为另一种的效果. 2.实现过渡效果的两个要件: 规定把效果添加到那个css属性上. 规定效果时长 定义 ...
- web服务器专题:tomcat(三)tomcat-user.xml 配置文件
回顾:web服务器专题:tomcat(二)模块组件与server.xml 配置文件 Tomcat管理模块 安装Tomcat后,访问127.0.0.1/8080可以看到这个首页,上图中的三个按钮即为To ...
- 被 Pandas read_csv 坑了
被 Pandas read_csv 坑了 -- 不怕前路坎坷,只怕从一开始就走错了方向 Pandas 是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的 ...
- angular8 大地老师学习笔记---第八课
/*ViewChild获取dom节点 1.模板中给dom起一个名字 <div #myBox> 我是一个dom节点 </div> 2.在业务逻辑里面引入ViewChild imp ...
- 【原创】Linux PCI驱动框架分析(一)
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- SpringBoot从入门到精通教程(五)
上节,我们讲了 SpringBoot 如何使用MyBatis 今天我们讲讲 Springboot Logo自定义的问题, 我们在启动 SpringBoot 时,控制台会打印 SpringBoot Lo ...
- VS2019开启调试,测试图片上传的时候,一点到图片上传,直接导致VS调试崩掉,返回 程序“[14764] iisexpress.exe”已退出,返回值为 -1 (0xffffffff)。 是什么原因导致的?
试着使用管理员身份运行vs 今天调试的时候遇到个奇葩问题 一点上传控件选择文件后 就终止调试 发现根源不在上传控件 而是本地的中文输入法!关掉vs自动终止调试设置就好了 工具->选项-> ...