XML学习

本文探讨了XML的自定义性质和其在数据存储中的优势,介绍了DTD约束、XML解析技术(DOM树和SAX),并以Jsoup为例演示了XML文档的解析。重点讲解了如何通过DOM4J解析器操作XML数据和外部DTD引用。
摘要由CSDN通过智能技术生成
  • html的标签是别人定好的,而xml是自定义的,可拓展的
  • 优势在于存储数据,比配置文件properties方便
  • xml 数据可以在网络中跨语言,跨平台传输
  • xml是存储数据,html是展示数据
<?xml version="1.0" encoding="UTF-8"?>
-<students>


-<student number="s001">

<name>zhangsan</name>

<age>abc</age>

<sex>hehe</sex>

</student>


-<student number="s002">

<name>lisi</name>

<age>24</age>

<sex>female</sex>

</student>

</students>

xml组成部分

<?xml version="1.0" encoding="UTF-8"?>

xml约束

  • 约束文档,规定xml文档的书写规则
  • 程序员需要做的是,在xml中引入约束文档,能够简单的读懂约束文档

请添加图片描述
dtd文档

<!ELEMENT students (student+) >
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>

从外部引入dtd文件

<!DOCTYPE students SYSTEM "student.dtd">

XML解析

  • 操作xml文档,将数据读取到内存到内存中
    解析xml的方式
  • DOM树,一次性加载进内存,操作方便,占内存

在这里插入图片描述

  • SAX,逐行读取,优点不占内存(手机),只能读取,读一行释放一行,不能增删

xml常见解析器

  • JAXP
  • DOM4J
  • JSOUP
  • PULL

JSOUP

/**
 * Jsoup快速入门
 */
public class JsoupDemo1 {
    public static void main(String[] args) throws IOException {
        //2.获取Document对象,根据xml文档获取
        //2.1获取student.xml的path
        //利用类对象获取路径,使用类加载器
        String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
        //2.2解析xml文档,加载文档进内存,获取dom树--->Document
        Document document = Jsoup.parse(new File(path), "utf-8");
        //3.获取元素对象 Element
        Elements elements = document.getElementsByTag("name");

        System.out.println(elements.size());
        //3.1获取第一个name的Element对象
        Element element = elements.get(0);
        //3.2获取数据
        String name = element.text();
        System.out.println(name);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值