xml快速入门

概述

概念

Extensible Markup Language 可扩展标记语言

功能
  • 配置文件
  • 在网络中传输
与html区别
xmlhtml
标签自定义标签预定义
语法严格语法松散
储存数据展示数据

语法

基本语法
  • 后缀名为.xml
  • 文档第一行为文档声明<?xml version='1.0' ?>
  • 有且仅有一个根标签
  • 属性值必须使用单引号或双引号引起来
  • 标签必须正确关闭(自闭和或围堵)
  • 标签名称区分大小写
快速入门
<?xml version='1.0' ?>

<users>
    <user id="1">
        <name>zhangsan</name>
        <age>18</age>
        <gender>male</gender>
    </user>

    <user id="2">
        <name>lisi</name>
        <age>28</age>
        <gender>male</gender>
    </user>
</users>
组成部分
  1. 文档声明
    1. 格式:<?xml 属性列表?>
    2. 属性列表
      • version:版本号,必需的属性
      • encoding:编码方式
      • standalone:是否独立,取值为yes/no,一般不设置
  2. 指令(结合CSS)
    在第二行写<?xml-stylesheet type="text/css" href="a.css" ?>
  3. 标签:不能以数字标点开始,不能包含空格,不能以字母xml等开始
  4. 属性:id属性值唯一
  5. 文本:大于号、小于号等特殊字符需要转义(同html)。或使用CDATA区<![CDATA[ 展示的内容 ]]>

约束

分类
  1. DTD:简单的约束。
  2. Schema:复杂的约束 。后缀名是.xsd,是一种特殊的xml文档
引入

引入内部dtd <!DOCTYPE 根标签名 [dtd约束的内容]>
引入本地的外部dtd:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
引入网络的外部dtd:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">

引入Schema约束

  1. 填写xml文档根元素
  2. 引入xsi前缀
  3. 引入xsd文件命名空间
  4. 为每一个xsd约束声明一个前缀,作为标识

解析

解析xml的方法
  1. DOM:将标记语言文档一次性加载进内存,在内存中形成一颗dom树
  2. SAX:逐行读取,基于事件驱动。
xml常见解析器
  1. JAXP:支持dom和sax两种思想(但特别烂,没人用)
  2. DOM4J:非常优秀的解析器,基于dom思想
  3. Jsoup:dom
  4. PULL:Android内置解析器,sax方式

Jsoup

Jsoup快速入门
  1. 获取Document对象
  2. 获取对应标签Element对象
  3. 获取数据
public class JsoupTest {
    public static void main(String[] args) throws IOException {

        String path = JsoupTest.class.getClassLoader().getResource("students.xml").getPath();
        Document document = Jsoup.parse(new File(path), "utf-8");
        Elements names = document.getElementsByTag("name");
        Element name = names.get(0);
        System.out.println(name.text());

    }
}
Jsoup中的对象
  1. Jsoup:工具类
  2. Document:文档对象,代表内存中的dom树
  3. Elements:元素Element对象的集合
  4. Element:元素
  5. Node:结点对象,是Element和Document的父类
快捷查询方式
  1. selector选择器:调用Node的select方法,参数书写格式类似于CSS选择器
  2. XPath:根据Document对象创建JXDocument
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FengLing255

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值