可扩展标记语言XML

简介: 可扩展标记语言XML

1、XML 简介

什么是xml?

可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。

在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。

xml 的作用?

XML 被设计用来传输和存储数据。


2、XML 语法

  1. 文档声明。
  2. 元素(标签)
  3. xml 属性
  4. xml 注释
  5. 文本区域(CDATA 区)

注:

  1. 不同于html,所有XML 元素都须有关闭标签(也就是闭合)
  2. XML 标签大小写敏感
  3. XML 必须正确地嵌套
  4. XML 文档必须有唯一的根元素,也就是顶级元素
  5. XML 的属性值须加引号
  6. XML 中的特殊字符的表示方法与html一样

2.1文档声明

创建一个 xml 文件

<?xmlversion="1.0" encoding="utf-8" ?><!-- xml 声明 version 是版本的意思 encoding 是编码 -->

属性

  1. version 是版本号
  2. encoding 是 xml 的文件编码
  3. standalone=“yes/no” 表示这个 xml 文件是否是独立的 xml 文

2.2 元素(标签)

2.2.1 什么是 XML 元素?

XML 元素 指的是从(且包括)开始标签直到(且包括)结束标签的部分。

元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。xml元素类似html标签

<bookstore><bookcategory="CHILDREN"><title>Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price></book><bookcategory="WEB"><title>Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price></book></bookstore>

在上例中, 和 都拥有元素内容,因为它们包含了其他元素。 只有文本内容,因为它仅包含文本。

在上例中,只有 元素拥有属性 (category=“CHILDREN”)。

2.2.2 XML 命名规则

XML 元素必须遵循以下命名规则:

  • 名称可以含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字符 “xml”(或者 XML、Xml)开始
  • 名称不能包含空格

可使用任何名称,没有保留的字词。


2.3 xml 属性

XML 元素可以在开始标签中包含属性,类似 HTML。

属性 (Attribute) 提供关于元素的额外信息。

属性值必须被引号包围

<!-- sex 是一个属性 --><personsex="female"><firstname>Anna</firstname><lastname>Smith</lastname></person><!-- sex 是一个子元素 --><person><sex>female</sex><firstname>Anna</firstname><lastname>Smith</lastname></person>

在第一个例子中,sex 是一个属性。在第二个例子中,sex 则是一个子元素。两个例子均可提供相同的信息。


2.4 xml 注释

html 和 XML 注释 一样 :

<!-- 注释 -->

2.5 文本区域(CDATA 区)

CDATA 里的文本内容,只是纯文本,不会被xml语法解析

CDATA 格式:

<![CDATA[纯文本原样显示]]]>

例:

<?xmlversion="1.0" encoding="utf-8" ?><!-- xml 声明 version 是版本的意思 encoding 是编码 --><BOOK><![CDATA[纯文本原样显示]]]></BOOK>

3、XML解析技术—dom4j★

3.1 下载【dom4j】jar包

下载地址:https://dom4j.github.io/

a104a6d165c547389cf640d08f4c101a.png

下载之后,创建一个 lib 目录,并添加 dom4j 的 jar 包。并添加到类路径。【dom4j 】jar 包就导入完成了


3.2 dom4j 编程步骤

  1. 先加载 xml 文件创建 Document 对象
  2. 通过 Document 对象拿到根元素对象
  3. 通过根元素.elelemts(标签名); 可以返回一个集合,这个集合里放着。所有你指定的标签名的元素对象
  4. 找到你想要修改、删除的子元素,进行相应操作

【student.xml】

<?xmlversion="1.0" encoding="utf-8" ?><!-- xml 声明 version 是版本的意思 encoding 是编码 --><students><studentsn="2020020197"><!-- sn属性为学号--><name>冯诺依曼</name><!-- name标签为姓名--><age>20</age><!-- age标签为年龄--></student><studentsn="2020020198"><!-- sn属性为学号--><name>图灵</name><!-- name标签为姓名--><age>22</age><!-- age标签为年龄--></student></students>

【Student.java】

publicclassStudent {
privateStringsn;
privateStringname;
privateintage;
publicStudent(Stringsn, Stringname, intage) {
this.sn=sn;
this.name=name;
this.age=age;
    }
publicStudent() {
    }
@OverridepublicStringtoString() {
return"Student{"+"sn='"+sn+'\''+", name='"+name+'\''+", age="+age+'}';
    }
publicStringgetSn() {
returnsn;
    }
publicvoidsetSn(Stringsn) {
this.sn=sn;
    }
publicStringgetName() {
returnname;
    }
publicvoidsetName(Stringname) {
this.name=name;
    }
publicintgetAge() {
returnage;
    }
publicvoidsetAge(intage) {
this.age=age;
    }
}

解析XML文件

publicvoidgetDocument() throwsDocumentException {
// 1.通过创建 SAXReader 对象。来读取 xml 文件,获取 Document 对象SAXReaderreader=newSAXReader();
Documentdocument=reader.read("src/student.xml");
// 2.通过 Document 对象。拿到 XML 的根元素对象Elementroot=document.getRootElement();
// 3.通过根元素对象。获取所有的 book 标签对象List<Element>students=root.elements("student");
// 4.遍历每个 student 标签对象。然后获取到 student 标签对象内的每一个元素for (Elementstudent : students) {
//elementText("name") 获取name标签的文本内容StringnameText=student.elementText("name");
//elementText("age") 获取age标签的文本内容StringageText=student.elementText("age");
//attributeValue() 获取sn属性的文本内容StringsnValue=student.attributeValue("sn");
//实例化javabean类接收System.out.println(newStudent(snValue, nameText, Integer.parseInt(ageText)));
        }
    }
目录
相关文章
|
XML JavaScript 安全
XML( 可扩展编辑语言 ) —— DOM解析
XML( 可扩展编辑语言 ) —— DOM解析
72 2
|
2月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
3月前
|
XML JSON druid
xml 可扩展标记语言
xml 可扩展标记语言
22 0
|
11月前
|
XML 存储 数据格式
XML系列(一)之 标记语言
XML系列(一)之 标记语言
|
XML 存储 设计模式
XML(可扩展编辑语言) —— DTD
XML(可扩展编辑语言) —— DTD
52 2
|
XML 存储 JSON
XML——可扩展标记语言
XML——可扩展标记语言 XML是被设计用来传输和存储数据(HTML是用来呈现数据的) XML和HTML类似,不同的是HTML中都是预定义标签,而XML中没有预定义标前,全都是自定义标签,用来表示一些数据。
|
XML Java 数据格式
深入理解Spring IOC之扩展篇(一)、自定义xml标签
深入理解Spring IOC之扩展篇(一)、自定义xml标签
93 0
|
XML 存储 JavaScript
Web阶段:第六章:XML可扩展标记语言
Web阶段:第六章:XML可扩展标记语言
114 0
Web阶段:第六章:XML可扩展标记语言
|
1月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
3月前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容