java XML标记语言

可扩展标记语言( Extensive Markup Language),标签中的元素名是可以自己随意写,可拓展是相对于html来说

标记语言:由一对尖括号括起来

  • 用来当做配置文件
  • xml的配置文件和properties的配置文件的选用:
  • 如果配置的是单项数据,使用properties
  • 如果配置的是多项数据,使用xml

文件后缀

.xml

文档声明

version 是版本的意思, encoding 是编码集



1、xml文件中有且只有一个根标签

2、标签中可以定义属性,在给属性赋值的时候,值要用引号括起来(单双都可)

3、标签名区分大小写

4、标签的闭合

  • <aaa></aaa> 有头有尾
  • <bbb> </bbb> 自闭和

5、标签名的命名规则

  • 可以由数字,字母,一些符号来组成
  • 开头不能是数字和标点符号
  • 标签名中 不能有空格
  • 如: <aa a></aa>
  • 标签名 不能是xml或者XML
  • 如: <xml></xml>

DTD约束

文档类型定义


        ]>

        三国
        386

        水浒
        400

dtd文件:books.dtd




DOM解析

就是指先将xml文件一次性的加载进内存中,在内存中形成一个树状结构(dom树)

优点:我们可以通过dom方式的解析,对xml文件中的数据进行增删改查

缺点:如果树太大了,非常占内存空间

SAX解析

Simple APIs for XML(简单应用程序接口)

基于事件处理的,逐行扫描,逐行加载。

优点:逐行扫描,读取一行,加载一行,加载完就扔了,不占用内存空间

缺点:执行过程不可逆,不能对数据进行增删改操作,只能进行查询操作,不能回头了

JDOM解析

DOM4j解析

public static void main(String[] args) throws DocumentException {
    SAXReader saxReader = new SAXReader();
    //解析XML文件、获取树对象
    Document doc = saxReader.read(new File("java20210519/src/study/books.xml"));
    //获取根标签对象
    Element root = doc.getRootElement();
    //获取根元素下的子元素对象集合
    List list = root.elements();
    for (Element element : list){
        //获取该元素下的子元素name
        Element name = element.element("name");
        //获取该元素下的子元素price
        Element price = element.element("price");
        //获取name、price元素的文本信息
        System.out.println("名称:" + name.getText() + ",价格:" + price.getText());
    }
}
Element对象
// 获取所有的子标签
List elements();
// 获取元素的名字
String getName();
// 获取标签内的文本内容
String getText();
// 根据标签名获取指定第一个标签对象
Element element(String name);
// 根据属性名获取属性值
String attributeValue(String name);

Original: https://www.cnblogs.com/am0304/p/16486818.html
Author: 超甜的小布丁
Title: java XML标记语言

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620292/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【StoneDB Class】入门第一课:数据库知识科普

    在没有出现数据库之前,数据存储在文本中,这种数据存储方式不管是管理还是查询,效率都是极其低下的,数据之间没有关联性。到了1970年,IBM研究员 E.F.Codd 发表了论文&#8…

    数据库 2023年5月24日
    087
  • springcloud~nacos通过@refreshScope进行配置热更新

    配置类 @Data @ConfigurationProperties("auth") public class AuthProperties { private…

    数据库 2023年6月6日
    089
  • vue导入UEditor报错问题分析

    直接上报错信息,如下。。。。 1.看看js是否导入 2.看看ue是否加入 F12 控制台输入则可看见那就是导入了,不是这个问题。 在查看问题的目标方向……….

    数据库 2023年6月6日
    0136
  • Proxy代理模式(结构型)

    一:描述: 为其他对象提供一种代理,来控制对这个对象的访问。如当操作某个对象很复杂时,我们可以建个代理来操作复杂对象,并开放一些简单的接口/方法来让我们比较简单的间接操作,也可在代…

    数据库 2023年6月11日
    094
  • MySQL特性:MRR,Multi-Range Read,多范围读

    孔个个MRR在5.6版本开始支持,相关文章不少。但是读起来层次感差了一些,在这里我用自己的理解重新整理了一版。这里参考了很多在网络上能找到的资料,才使我更全面的理解MRR,但时间有…

    数据库 2023年6月16日
    061
  • Mybatis-Plus使用 ORDER BY FIELD

    一、Mybatis-Plus使用 ORDER BY FIELD 如图所示 两张仅有一个字段关联的表,商品表想用活动商品表查出来的顺序去查商品可以使用以下方法(不想去XML写Sql的…

    数据库 2023年6月6日
    088
  • 第05章 MySQL排序与分页

    第05章 MySQL排序与分页 1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend): 升序 DESC(descend):降序 *ORDER …

    数据库 2023年5月24日
    093
  • Qt 的事件监听和事件过滤

    Qt 产品级的开发项目中经常会用到一些自定义控件,从而达到一些可定制化的效果,这时候往往需要重写它的监听事件,满足产品的需求。这里用一个简单的例子记录一下思路: 新建一个DiyLa…

    数据库 2023年6月16日
    092
  • 如何基于LSM-tree架构实现一写多读

    PolarDB是阿里巴巴自研的新一代云原生关系型数据库,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、海量存储、高性能、低成本的数据库服务。X-Engine…

    数据库 2023年5月24日
    081
  • 史上最全Mysql规范

    1 整体规约 1)【强制】数据库所有对象必须要有注释,包括:表、字段、索引等,并且要保持最新; 1)【强制】默认使用utf8字符集,无乱码风险,除一些需要存储特殊符号的字段,可以采…

    数据库 2023年6月14日
    074
  • Mysql_视图

    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由…

    数据库 2023年6月11日
    089
  • AspNetCoreapi 使用 Docker + Centos 7部署

    好久没有更新文章了,前段时间写了一系列的文章放到桌面了,想着修修改改,后来系统中勒索病毒了还被公司网络安全的抓到是我电脑,后来装系统文章给装丢了。然后好长一段时间没有写了。 今天记…

    数据库 2023年6月11日
    0102
  • 如何干涉MySQL优化器使用hash join

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 前言 实验 总结 前言 数据库的…

    数据库 2023年6月11日
    097
  • MySQL 视图简介

    对数据库中数据的查询有时是非常复杂的,如表连接、子查询等。这种查询很难写,而且容易出错。此外,当您专门操作表时,有时只需要操作部分字段。 [En] The query about …

    数据库 2023年5月24日
    0109
  • 分布式全局唯一ID

    方案一、UUID UUID的方式能生成一串唯一随机32位长度数据,它是无序的一串数据,按照开放软件基金会(OSF)制定的标准计算,UUID的生成用到了以太网卡地址、纳秒级时间、芯片…

    数据库 2023年6月9日
    096
  • EXCLE中SUMIF和SUMIFS的用法

    一、函数的含义 1、SUMIF函数在EXCLE中是用来对指定条件对若干单元格求和; 2、SUMIFIS函数在EXCLE中是用来对一个区域内满足多重条件的单元格求和(两个条件以上);…

    数据库 2023年6月11日
    089
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球