前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一文XML简单入门

一文XML简单入门

作者头像
暴躁的程序猿
发布于 2022-03-23 12:10:25
发布于 2022-03-23 12:10:25
46700
代码可运行
举报
运行总次数:0
代码可运行

Xml

什么是xml

xml是可扩展的标记性语言

xml的作用?

1.可以用来保存数据,而且这些数据具有自我 描述性

2.它还可以作为项目或者模块的配置文件 (spring框架的配置文件application.xml等)

3.还可以作为网络数据传输的数据格式(现在以JSON为主)

声明文档

我们先创建一个简单的xml文件,用来描述图书信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8" ?>
<!--以上内容就是xml文件的声明
    version="1.0"   表示xml的版本
    encoding="utf-8" 表示xml文件本身的编码-->
<books>
    <book sn="SN123123"> <!--book表示一个图书的信息 sn表示图书的编号-->
        <name>java入门</name>  <!--name表示书名-->
        <author>小二</author>   <!--作者-->
        <price>68.9</price>     <!--价格-->
    </book>
    <book sn="SN123123"> <!--book表示一个图书的信息 sn表示图书的编号-->
        <name>c语言入门</name>  <!--name表示书名-->
        <author>小三</author>   <!--作者-->
        <price>16.8</price>     <!--价格-->
    </book>
</books>

xml注释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
html和xml注释一样 :<!-- 注释-->

元素 (标签)

什么是xml元素?

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

元素可以包含其他元素、文本,元素也可以拥有属性

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<name>java入门</name>

这就是元素

xml命名规则:

  1. 名称可以包含字母、数字以及其他字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<book sn="SN123123"> <!--book表示一个图书的信息 sn表示图书的编号-->
        <name>java入门</name>  <!--name表示书名-->
        <author>小二</author>   <!--作者-->
        <price>68.9</price>     <!--价格-->
</book>

2.名称不能以数字或者标点符号开始

错误示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<1book sn="SN123123"> <!--book表示一个图书的信息 sn表示图书的编号-->
        <name>c语言入门</name>  <!--name表示书名-->
        <author>小三</author>   <!--作者-->
        <price>16.8</price>     <!--价格-->
</1book>

3.名称不能包含空格

错误示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<he llo></he llo>

xml属性

xml的属性标签和html的标签属性是非常类似的,属性可以提供元素的额外信息

在标签上可以书写属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
一个标签上可以书写多个属性  每个属性必须使用引号引起来

规则和标签的书写一致 

例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<book sn="SN123123" value="book" id="java"> <!--book表示一个图书的信息 sn表示图书的编号-->
</book>

语法规则

1.所有xml元素都必须有关闭标签(也就是闭合)

2.xml必须正确的嵌套

这就是不正确的嵌套

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<book sn="SN123123" value="book" id="java"> <!--book表示一个图书的信息 sn表示图书的编号-->
    <author>小三
</book></author>

3.xml文档必须有根元素

根元素就是顶级元素 没有父标签的元素,叫顶级元素 。

根元素是没有父标签的顶级元素,而且是唯一一个才行

错误示例: 有两个books不可以

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8" ?>
<!--以上内容就是xml文件的声明
    version="1.0"   表示xml的版本
    encoding="utf-8" 表示xml文件本身的编码-->
<books>
    <book sn="SN123123"> <!--book表示一个图书的信息 sn表示图书的编号-->
        <name>java入门</name>  <!--name表示书名-->
        <author>小二</author>   <!--作者-->
        <price>68.9</price>     <!--价格-->
    </book>
</books>
<books>
        <book sn="SN123123" value="book" id="java"> <!--book表示一个图书的信息 sn表示图书的编号-->
            <name>c++语言入门</name>  <!--name表示书名-->
            <author>小四</author>   <!--作者-->
            <price>16.8</price>     <!--价格-->
        </book>
</books>

4.xml的属性值必须加引号

5.xml中的特殊字符需要转义使用

例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <price><16.8</price>  
 需写成
 <price>&lt;16.8</price>     < 转成 &lt;    > 转成 &gt;

文本区域(CDATA区)

CDATA语法可以告诉xml解析器,我CDATA中的文本内容只是纯文本,不需要xml语法解析

CDATA格式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<![CDATA[这里可以把你输入的字符原样显示,不会解析 xml]]>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<book sn="SN123123" value="book" id="java"> <!--book表示一个图书的信息 sn表示图书的编号-->
    <name>c语言入门</name>  <!--name表示书名-->
    <author>小三</author>   <!--作者-->
    <price>&lt;16.8</price>     <!--价格-->
    <![CDATA[<<<衬衫的价格是]]>
</book>

xml解析技术

不管是html还是xml都是标记性文档,都可以使用w3c组织制定的dom技术来解析。

xml文档对象模型定义访问和操作xml文档的标准方法。

Dom将xml文档作为一个树形结构,而树叶被定义为节点

document对象表示的是整个文档(可以是html文档也可以是xml文档)

早期JDK为我们提供两种解析xml技术DOM和Sax(已经过时)

dom解析是W3C组织制定的

SUN公司在JDK5对dom解析技术进行了升级:SAX(Simple API for XML)

SAX解析是一行一行读取不会产生大量的Dom对象 在内存和性能上优于Dom解析

第三方的解析:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jdom在dom基础上做了封装

    dom4j又对jdom做了封装

pull主要用在Android手机开发

dom4j解析技术

属于第三方公司技术,使用需要到dom4j官网下载jar包。

简单使用:

引入dom4j 依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependencies>
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
    </dependency>
</dependencies>

项目下创建xml文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   <?xml version="1.0" encoding="utf-8" ?>
    <!--以上内容就是xml文件的声明
        version="1.0"   表示xml的版本
        encoding="utf-8" 表示xml文件本身的编码-->
    <books>
        <book sn="SN123123"> <!--book表示一个图书的信息 sn表示图书的编号-->
            <name>java入门</name>  <!--name表示书名-->
            <author>小二</author>   <!--作者-->
            <price>68.9</price>     <!--价格-->
        </book>
        <book sn="SN123123" value="book" id="java"> <!--book表示一个图书的信息 sn表示图书的编号-->
            <name>c语言入门</name>  <!--name表示书名-->
            <author>小三</author>   <!--作者-->
            <price>&lt;16.8</price>     <!--价格-->
            <![CDATA[<<<衬衫的价格是]]>
        </book>
    </books>

创建一个pojo类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @create: 2022/1/14
 * @author: Tony Stark
 */
public class Book {
    private String sn;
    private String name;
    private BigDecimal price;
    private String author;

    public Book() {
    }

    public Book(String sn, String name, BigDecimal price, String author) {
        this.sn = sn;
        this.name = name;
        this.price = price;
        this.author = author;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    @Override
    public String toString() {
        return "Book{" +
                "sn='" + sn + '\'' +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", author='" + author + '\'' +
                '}';
    }
}

测试方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
     * 读取books.xml文件生成Book类
     */
    @Test
    public void test2(){
        Document read=null;
        Element rootElement=null;
        //1.读取books.xml文件
        SAXReader reader = new SAXReader();
        try {
            read = reader.read("books.xml");
        //2.通过Document对象获取根元素
            rootElement = read.getRootElement();
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        //3.通过根元素获取book标签对象
        //如果有多个就用elements  一个就用element
        List<Element> books = rootElement.elements("book");
        //4.遍历,处理每个book便签转换为book类
        for (Element book : books) {
            //asXML 把标签对象转换成标签字符串
//            System.out.println(book.asXML());
            Element name = book.element("name");
            Element price = book.element("price");
            Element author = book.element("author");
            //getText可以获取标签中的文本
            String nameText = name.getText();
            String priceText = price.getText();
            String authorText = author.getText();
            //获取标签的属性值
            String sn = book.attributeValue("sn");
            System.out.println(new Book(sn,nameText,new BigDecimal(priceText),authorText));
        }
    }

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Book{sn='SN123123', name='java入门', price=68.9, author='小二'}
Book{sn='SN123123', name='c语言入门', price=16.8, author='小三'}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/01/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
XML入门介绍
xml 的作用? xml 的主要作用有: 1、用来保存数据,而且这些数据具有自我描述性 2、它还可以做为项目或者模块的配置文件 3、还可以做为网络传输数据的格式(现在 JSON 为主)。
愷龍
2022/09/26
8390
XML入门介绍
Web阶段:第六章:XML可扩展标记语言
什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language)。 XML 是一种很像HTML的标记语言。 XML 的设计宗旨是传输数据,而不是显示数据。 XML 标签没有被预定义。您需要自行定义标签。 XML 被设计为具有自我描述性。
Java廖志伟
2022/09/28
8630
Web阶段:第六章:XML可扩展标记语言
XML简单入门_XML文件都有哪些应用
语法 4. 文档声明 5. 元素(标签) 6. xml属性 7. xmll注释 8. 文本区域
全栈程序员站长
2022/09/21
4270
XML简单入门_XML文件都有哪些应用
XML笔记
XML:可扩展的标记性语言。 XML的主要作用: 1、用来保存数据; 2、可以做为项目或者模块的配置文件; 3、做为网络传输数据的格式(JSON现在为主)。 XML的注释和HTML的一样。 XML命名规则: 1、名称可以包含字母、数字以及其他的字符; 2、名称不能以数字或标点符号开始; 3、名称不能包含空格。 XML标签也分单、双标签。 XML的属性: 一个标签上可以书写多个属性。每个属性的值必须用引号括起来。 XML对大小写敏感,且标签要闭合。标签必须正确嵌套。XML文档必须要有根元素。 XML里面的文本区域:(CDATA区) 区里的内容只是纯文本。 格式: <![CDATA[....纯文本,原样显示字符....]]>
技术交流
2022/11/18
3810
XML笔记
xml 解析技术介绍和解析xml文件
xml 可扩展的标记语言。不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析。
一个风轻云淡
2022/11/15
3.9K0
xml 解析技术介绍和解析xml文件
XML 简介
xml 的标签属性和 html 的标签属性是非常类似的,属性可以提供元素的额外信息
一个风轻云淡
2022/11/15
3350
XML 简介
java高级语言程序设计_高级程序设计语言包括
开源,易用,应用于Java平台上的一种解析XML的技术,提供第三方的jar包使用了大量的接口。 其中: Document:定义XML文档(和DOM一样) Element:定义XML元素 Text:定义XML文本节点 Attribute:定义了XML 的属性
全栈程序员站长
2022/08/04
9280
java高级语言程序设计_高级程序设计语言包括
Java中XML运用总结
5.名称区分大小写 标记内容: 开始标记与结束标记之间 ,是标记的内容. 例如 ,我们通过标记, 描述一个人名:
全栈程序员站长
2022/07/18
1.2K0
Java中XML运用总结
JavaWeb08-XML,tomcat,HTTP轻松入门
XML&tomcat&HTTP 一.XML基础知识 1. xml介绍 XML 指可扩展标记语言(EXtensible Markup Language),也是一种标记语言,很类似 HTML.它的设计宗旨是传输数据,而非显示数据它;标签没有被预定义,需要自行定义标签。 XML 被设计为具有自我描述性,是 W3C 的推荐标准,在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言
Java帮帮
2018/03/16
1.2K0
JavaWeb08-XML,tomcat,HTTP轻松入门
常用 XML 解析技术
现在的软件项目都不是独立的一个项目,都是多系统协调工作。这样的话就涉及到系统间的通讯,通讯就会跟报文传输挂上关系。系统间使用怎样的报文格式进行通讯呢?有的使用固定长度格式报文;有的使用变长格式报文;有的使用 XML 格式报告。本分享主要和大家分享一下 XML 格式报文的解析。
CSDN技术头条
2018/07/30
8550
常用 XML 解析技术
E009Web学习笔记-XML
可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
訾博ZiBo
2025/01/06
1140
简单使用SAXReader解析xml数据
之前的工作中,一直是使用json格式的数据进行数据传输。很少会接触到xml格式的数据。不过因为工作需求,在对接其他产品的接口时,偶尔会遇到需要使用xml格式数据的情况,所以,也得学学如何解析xml。不过个人感觉,还是Json比较容易些啊,第一次解析xml时,我是一脸懵逼的,不过难者不会,会者不难,知道其中的原理和使用方法,其实发现xml也是很简单而且很强大的。
全栈程序员站长
2022/09/14
2.3K0
最详细的XML操作学习笔记
以上这种数据, 如果通过我们学习的集合来存储的话, 需要通过多个集合的嵌套使用.
Java学习
2018/07/25
2K0
最详细的XML操作学习笔记
Java文件操作——XML文件的读取
文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输。所以XML在现今应用程序中是非常流行的。本文主要讲Java解析和生成XML。用于不同平台、不同设备间的数据共享通信。
Java团长
2018/08/03
3K0
Java解析XML文件
1.DOM方式解析XML Dom解析是将xml文件全部载入到内存,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,与平台无关,java提供的一种基础的解析XML文件的API,理解较简单,但是由于整个文档都需要载入内存,不适用于文档较大时。
全栈程序员站长
2022/08/18
2K0
【Java 进阶篇】Java XML快速入门:理解、解析和生成XML
XML(可扩展标记语言)是一种常用于存储和交换数据的标记语言,而Java是一种强大的编程语言,它具有处理XML的能力。在本篇博客中,我们将探讨XML的基础知识,学习如何在Java中解析和生成XML文档,以及实际应用中如何处理XML数据。
繁依Fanyi
2023/10/25
3.2K0
【Java 进阶篇】Java XML快速入门:理解、解析和生成XML
XML快速入门学习笔记
问:什么是 XML? 答:XML 指可扩展标记语言(EXtensible Markup Language);且是一种很像HTML的标记语言;设计宗旨是传输数据,而不是显示数据。 XML 标签没有被预定义,您需要自行定义标签,它设计为具有自我描述性。 目前,XML 在 Web 中起到的作用不会亚于一直作为 Web 基石的 HTML;XML 是各种应用程序之间进行数据传输的最常用的工具。
全栈工程师修炼指南
2020/10/23
9.2K0
XML快速入门学习笔记
python之XML文件解析
常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然使用场合也不同。
风之随想
2019/12/09
1.5K0
Java中解析XML文件
树结构,有助于更好地理解、掌握,代码易于编写,在解析过程中树结构是保存在内存中,方便修改
头发还在
2023/10/16
4670
XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件
noteless
2018/09/11
3.4K0
XML概念定义以及如何定义xml文件编写约束条件java解析xml   DTD XML Schema JAXP java xml解析 dom4j  解析 xpath dom sax
相关推荐
XML入门介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档