14.1 XML基础

XML简介

  1. XML(eXtensible Markup Language)可扩展标记语言。
    主要用于数据的存储和传输。

  2. 特点:

      - 纯文本,使用UTF-8的编码模式
      - 可嵌套,适合表示结构化数据。
    
  3. XML中有固定的格式,XML首行为:<?xml version="1.0"?>
    XML的格式分为两种:

      - 格式正确,是指格式是正确的元素需正确嵌套,如:`<isbn lang="CN">1234567</isbn>`
      - 合法,是指格式正确且可以被DTD或XSD验证。(DTD和XSD:验证XML结构和数据是否有效;)
    
  4. 其中XML也有转义符&,特殊的字符有固定的转义。

  5. XML中解析有两种方式:DOM和SAX

DOM

DOM就是将XML作为一个树形结构来处理。
使用三个对象表示XML的内容:

  • Document:代表整个XML文档;
  • Element:代表一个XML元素;
  • Attribute:代表一个元素的某个属性。

DOM为例的代码:

<?xml version="1.0" encoding="UTF-8" ?>
<book id="1">
    <name>Java核心技术</name>
    <author>Cay S. Horstmann</author>
    <isbn lang="CN">1234567</isbn>
    <tags>
        <tag>Java</tag>
        <tag>Network</tag>
    </tags>
    <pubDate/>
</book>

结构图:
在这里插入图片描述
使用DOM获取一个XMLDocument对象:

  1. 获取到XML文件。
  2. DocumentBuilderFactory 工厂类获取到工厂类对象。
  3. 根据工厂类实例创建DocumentBuilder 实例。
  4. DocumentBuilder.parse()用于解析一个XML,参数为一个file文件,返回Document对象。
File file = new File("./book.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);

DOM 的优点是便捷,但缺点是占用内存大

SAX

使用SAX,无论XML有多大,占用的内存都很小。它是边读边解析的方式。

InputStream input = Main.class.getResourceAsStream("/book.xml");
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser saxParser = spf.newSAXParser();
saxParser.parse(input, new MyHandler());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值