A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 lovemiya 于 2018-5-21 16:27 编辑

XML



概述
  • 可扩展标记语言:允许用户自定义标签

作用
  • 传输和存取数据
  • 软件的配置文件(更常用)

语法基本语法
  • XML必须有关闭标签
  • 区分大小写
  • 属性需要有引号
  • 标签必须正确嵌套

文档声明
  • 通常出现在XML第一行第一列的位置

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

      • version: 必须的,使用"1.0"
      • encoding: 字符集.是使用浏览器打开的时候按此用的默认的字符集的编码
      • standalone: 描述XML文档是否需要依赖其他文件.



注释
  • <!-- XML的注释 -->

元素
  • 命名规范:

    • 可以包含字母,数字一级其他的字符
    • 不能以数字或者标点符号开始
    • 不能以字符"xml"开始
    • 不能包含空格,不能有冒号


属性
  • 属性的命名规范和元素一致

特殊字符和CDATA区
  • <![CDATA[ 内容]]>

XML的解析方式:
  • DOM:Document Object Model:一次性将文档加载到内存,形成树形结构进行解析

    • 缺点:如果文档特别大,容易导致内存的溢出
    • 优点:对XML进行增删改的操作

  • SAX:Simple API for XML:事件驱动的方式,一行一行进行解析的.

    • 缺点:不能对文档进行增删改
    • 优点:如果文档特别大,不会导致内存溢出


针对这两种解析方式,不同的公司提供了不同的API的实现
  • JAXP
  • JDOM
  • DOM4J
  • PULL


// 解析XML:
// 创建解析器
SAXReader reader = new SAXReader();
// 解析XML文档:
Document document = reader.read("conf/server.xml");
Element element = (Element)document.selectSingleNode("//Connector['@port']");
String port = element.attributeValue("port");
XML的约束概述
  • 用来约束XML的文档中可以出现那些标签,不能出现哪些标签,标签中是否有顺序,出现的次数,规范XML的写法.

种类及区别
  • DTD和Schema:

    • 区别:

      • DTD语法是自成一体的,Schema语法就是XML语法.
      • Schema的语法就是XML的语法所以更容易呗解析器解析
      • Schema支持名称空间
      • Schema有比DTD更加强大的语义和语法的约束





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马