XML

XML

一、概念

1.1概念:

eXtensible Markup Language:可扩展标记语言,标签都是自定义的。

1.2作用:

  • 作为配置文件:框架,工具。。。
  • 传输数据

1.3与HTML的区别

  • xml标签是自定义的,html标签是预定义的
  • xml语法严谨,html语法松散
  • xml是存储数据的,html是展示数据的。

二、组成部分

2.1文档声明

  • 任何一个xml文件第一行必须是声明文档。格式<?xml version=“1.0” ?> 文档声明中可以存在两个属性,encoding,值是解码规则,如utf-8,和standalone,值是yes或no。前者表示解码规则,后者表示文档是否独立于xml。由于一般都是独立的xml,所以这个属性一般不常用。

2.2指令

  • 结合CSS展示数据:<?xml-stylesheet type=“text/css” href=“a.css” ?>

2.3标签

  • 符合标签命名规则;
  • 遵循xml语法

2.4属性

  • 如果定义id值,则必须唯一

2.5文本

  • 对特殊字符处理:
    • 转义字符:和html一样
    • CDATA区:<![CDATA[文本内容]]>

三、约束(只需要会读懂约束规则即可)

3.1DTD约束

  • 内部定义:

  • <!DOCTYPE 根标签名称 "约束">
    
  • 外部引入(本地):

    • <!DOCTYPE 根标签名称 SYSTEM "文件所在位置">
      
  • 外部引入(网络):

    • <DOCTYPE 根标签名 PUBLIC "自定义名称" "网络路径URL">
      

3.2scheam约束

  • 定义xml实例文档:

    • 定义xml是实例文档:xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      
    • 定义命名空间:xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"
      
    • 定义前缀:  xmlns:前缀="http://www.itcast.cn/xml"
      

四、解析

4.1解析xml方法

  • DOM解析:

    • XML读取到内存,形成一个DOM树
    • 优点:操作方便,可以对文档进行CRUD的操作
    • 缺点:占内存
  • SAX解析:

    • 逐行读取,基于事件驱动的
    • 优点:不占内存
    • 缺点:只能读取,不能增删改
  • 常见解析器:JAXP、DOM4J、Jsoup、pull

    Jsoup:工具类,解析html和xml,返回Document对象

    ​ parse():解析html和xml文档,返回Document

    Document:getElementById(String id):根据id属性值获取唯一的element对象

    ​ getElementsByTag(String tagName):根据标签名称获取元素对象集合

    ​ getElementsByAttribute(String key):根据属性名称获取元素对象集合

    ​ getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合

    ​ xPath:需要xPath的jar包支持,selN()

    Element:元素(标签)对象

    ​ String attr(String key):根据属性名称获取属性值

    ​ String text():获取文本内容

    ​ String html():获取标签体的所有内容(包括字标签的字符串内容)

    ​ getElementById(String id):根据id属性值获取唯一的element对象

    ​ getElementsByTag(String tagName):根据标签名称获取元素对象集合

    ​ getElementsByAttribute(String key):根据属性名称获取元素对象集合

    ​ getElementsByAttributeValue(String key, String value):根据对应的属性名和属性值获取元素对象集合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值