六、xml基础

笔记思维导图

一、表单提交方式

  • 使用submit提交
  • 使用button提交表单
  • 使用超链接提交

二、xml的简介(了解)

  • eXtensible Markup Language:可扩展标记型语言

    • 标记型语言:html是标记型语言

      • 也是使用标签来操作
    • 可扩展
      • html里面的标签是固定的,每个标签都有特定的含义 <h1> <br/> <hr/>
      • 标签可以自己定义,可以写中文的标签 <person></person>   <猫></猫>
  • xml用途
    • html是用于显示数据,xml也可以显示数据(不是主要功能)
    • xml主要功能是,为了存储数据
  • xml是w3c组织(万维网联盟)发布的技术
  • xml有两个版本:1.0,1.1   【使用的都是1.0版本,1.1版本不能向下兼容】
  • XML与HTML比较
    • HTML的元素都是固定的,而XML可以自定义元素;
    • HTML用浏览器来解析执行,XML的解析器通常需要自己来写(因为元素是自定义的);
    • HTML只能用阿里表示网页,而XML可以做的事情很多。
  • XML和properties(属性文件)比较
    • 属性文件只能存储平面信息,而XML可以存储结构化信息;
    • 解析属性文件只需要使用Properties类就可以了,而解析XML文档是很复杂的。

三、xml的应用

  • 不同的系统之间传输数据

    • 比如 qq之间数据的传输
  • 用来表示生活中有关系的数据
    • 比如:

      <中国>
          <山东></山东>
          <安徽></安徽>
          <四川></四川>
      </中国>
  • 经常用在文件配置
    • 比如现在要连接数据库,肯定知道数据库的用户名和密码,数据名称。如果修改数据库的信息,不需要修改源代码,只要修改配置文件就可以了。
    • 比如struts、spring和hibernate都是基于xml作为配置文件的

四、xml的语法

  • xml的文档声明

    • 创建一个文件 后缀名是 .xml   ,然后使用文档声明来声明XML文件。且文档声明必须写在 第一行第一列
    • 文档声明最简单的语法:<?xml version="1.0"?>     【version属性是必须的】
    • 属性:
      • version: xml的版本 1.0(使用)    1.1
      • encoding:xml编码   如<?xml version="1.0" encoding="gbk"?> 【保存在磁盘上的文件编码要与声明的编码一致】
      • standalone:是否为独立文档,即是否需要依赖其他文件。  该属性值如果为yes 表示独立,如果为no表示不独立,即依赖外部的文件。默认是yes
    • xml的中文乱码问题解决
      • 保存到磁盘时候的编码和设置打开时候的编码一致,不会出现乱码
  • xml的元素(标签)定义
    • 一个标签分为起始标签和结束标签。不含标签体时,可以在标签内结束,如<person/>
    • 一个标签中可以嵌套若干子标签,但所有标签必须合理的嵌套,不允许有交叉嵌套。
    • 一个xml文档必须有且仅有一个根标签,其他标签都是这个根标签的子标签或孙标签。
    • 在xml中把空格和换行都当成内容来解析【xml中,下面这两段代码的含义是不一样的】

      <aa>11111111</aa>
      <aa>
          11111111
      </aa>
    • xml标签可以是中文
    • xml中标签的名称规则
      • xml代码区分大小写 【<p> <P>:这两个标签是不一样的】
      • xml的标签不能以数字和下划线开头 【<2a> <_aa>:错误】
      • xml的标签不能以xml、XML、Xml等开头 【<xmla> <XmlB> <XMLc>:错误】
      • xml的标签不能包含空格和冒号 【<a b> <a:b>:错误】
  • xml中属性的定义
    • html是标记型文档,可以有属性 ;xml也是标记型文档,可以有属性

      <person id1="aaa" id2="bbb"></person>
    • 属性定义的要求
      • 一个标签上可以有多个不同属性
      • 属性名称不能相同
      • 属性名称和属性值之间使用=,属性值使用引号包起来(可以是单引号,也可以是双引号)
      • xml属性的名称规范和元素的名称规范一致
  • xml中的注释
    • 写法<!-- xml的注释 -->
    • 注意的地方:注释不能嵌套
    • 注释也不能放第一行,第一行第一列必须放文档声明
  • xml中的特殊字符
    • <   &lt;     >   &gt;     (转义)
  • CDATA区(了解)
    • 可以解决多个字符都需要转义的操作 if( a<b && b<c && d>f){}  把这些内容放到CDATA区里面,不需要转义了
    • 写法:

      <![CDATA[ 内容  ]]>
      <![CDATA[ <b> if(a<b && b<c && d>f){} </b> ]]><!--把特殊字符,当作文本内容,而不是标签-->
  • PI指令(处理指令)(了解)
    • 作用:用来指挥软件如何解析XML文档。
    • 可以在xml中设置样式。  写法: <?xml-stylesheet type="text/css" href="css的路径"?>
    • 设置样式,只能对英文标签名称起作用,对于中文的标签名称不起作用的。
  • xml的约束
    • 为什么需要约束?

      • 比如现在定义一个person的xml文件,只想要这个文件里面保存人的信息,比如name age等,但是如果在xml文件中写了一个标签<猫>,发现可以正常显示,因为符合语法规范。但是猫肯定不是人的信息,xml的标签是自定义的,需要技术来规定xml中只能出现的元素,这个时候需要约束。
    • xml文档约束是用另一个文件来约束xml文档的结构,例如要求xml文档的根元素必须是<students>,在<students>元素下可以包含0~n个<student>元素,每个<student>元素必须有一个number属性,而且还要有三个子元素,分别为<name>、<age>、<sex>,这三个子元素的内容必须为文本内容,而不能是子元素。
    • xml的约束的技术 : dtd约束 和 schema约束 (会读即可)

      • dtd: dtd是平面式文档,dtd文件不是xml文档,通常扩展名为“.dtd”。它是最早的xml约束;
      • schema:schema本身也是xml文档,它比dtd要更加强大,通常扩展名为“.xsd”。它是新的xml文档约束,用来替代dtd。

五、xml的约束之dtd

  • dtd的快速入门    【创建一个文件 后缀名为.dtd    步骤如下:】

    • (1)看xml中有多少个元素 ,有几个元素,就在dtd文件中写几个 <!ELEMENT>
    • (2)判断元素是简单元素还是复杂元素
        • 复杂元素(有子元素的元素):<!ELEMENT 元素名称 (子元素)>
        • 简单元素(没有子元素):<!ELEMENT 元素名称 (#PCDATA)>
    • (3)需要在xml文件中引入dtd文件:<!DOCTYPE 根元素名称 SYSTEM "dtd文件的路径">
    • 校验xml的约束,需要使用工具(myeclipse工具) 【若用浏览器打开xml文件,浏览器只负责校验xml的语法,不负责校验约束】
      • 打开myeclipse开发工具
      • 创建一个项目 text
      • 在text的src目录下面创建一个xml文件和一个dtd文件
      • 当xml中引入dtd文件之后,比如只能出现name age,多写了一个a,会提示出错
  • dtd的三种引入方式
    • 引入外部的dtd文件:

      <!DOCTYPE 根元素名称 SYSTEM "dtd路径">
    • 使用内部的dtd文件:

      <!DOCTYPE 根元素名称 [
          <!ELEMENT person (name,age)>
          <!ELEMENT name (#PCDATA)>
          <!ELEMENT age (#PCDATA)>
      ]>
    • 使用外部的dtd文件(网络上的dtd文件):

      <!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文档的URL">
      <!-- struts2框架使用配置文件 使用网络上的dtd文件 -->
      <!DOCTYPE struts PUBLIC   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
                 "http://struts.apache.org/dtds/struts-2.0.dtd">
  • 使用dtd定义元素
    • 语法: <!ELEMENT 元素名 约束>
    • 简单元素:<!ELEMENT name (#PCDATA)>
      • (#PCDATA): 约束name是字符串类型
      • EMPTY : 元素为空(没有内容) 【比如:<sex></sex>、<br/>】
      • ANY:任意
    • 复杂元素:<!ELEMENT 元素名称 (子元素)>  【例如:<!ELEMENT person (name,age,sex,school)>】
      • 表示子元素出现的次数

        • +:表示一次或者多次
        • ?:表示零次或者一次
        • *:表示零次或者多次
      • 子元素直接使用逗号隔开
        • 表示元素出现的顺序,必须按指定的顺序去编写xml文档
      • 子元素直接使用 | 隔开
        • 表示元素只能出现其中的任意一个
  • 使用dtd定义属性
    • 语法

      <!ATTLIST 元素名称 属性名称 属性类型 属性的约束>
    • 属性类型

      <!-- CDATA:字符串 -->
      <!ATTLIST birthday ID1 CDATA #REQUIRED>
      
      <!-- 枚举:表示只能在一定的范围内出现值,但是只能每次出现其中的一个【红绿灯效果 aa|bb|cc】 -->
      <!ATTLIST age ID2 (AA|BB|CC) #REQUIRED>
      
      <!-- ID:值只能是字母或者下划线开头 不能出现空白字符 -->
      <!ATTLIST name ID3 ID #REQUIRED>
    • 属性的约束
      • #REQUIRED:表示该属性必须存在
      • #IMPLIED:属性可有可无
      • #FIXED: 表示一个固定值。语法:#FIXED "固定值"    【属性的值必须是设置的这个固定值】

        <!ATTLIST sex ID4 CDATA #FIXED "ABC">
      • 直接值:表示属性的取值为该默认值   【不写属性,使用直接值(该默认值);写了属性,使用设置的那个值】

        <!ATTLIST school ID5 CDATA "WWW">
  • DTD定义实体
    • 实体用于为一段内容创建一个别名,以后在XML文档中就可以使用别名引用这段内容了。
    • 语法: <!ENTITY 实体名称 "实体的值">

      <!-- 定义实体 -->
      <!ENTITY TEST "HAHAHEHE">
      <!-- 使用实体:&实体名称; -->
       &TEST;
    • 注意:定义实体需要写在内部dtd里面,如果写在外部的dtd里面,有某些浏览器下,内容得不到

六、xml的解析(重点)

  • xml是标记型文档
  • js使用dom解析标记型文档
    • 根据html的层级结构,在内存中分配一个树形结构,把html的标签,属性和文本都封装成对象
    • document对象、element对象、属性对象、文本对象、Node节点对象
  • xml的解析方式(技术):dom 和 sax
    • 画图分析使用dom和sax解析xml过程

七、使用jaxp实现查询操作

 

时间: 2024-10-06 01:24:38

六、xml基础的相关文章

XML基础知识

1.XML基础2.XML语法3.XML DOM4.Javascript解析XML文档 1.XML基础eXtensible Markup Language 可扩展标记语言XML是一种平台无关的用于携带和传送数据的方法. ~~~~xml主要是描述数据是什么,一般没有数据如何呈现的信息,有别于HTML,HTML可以说是xml的一种实现.(注:xhtml才是xml的一种实现) xml文档可以用IE 文本编辑器或者专门的XML编辑器浏览 ~~~xml不同平台的数据交换,但不适合大批量数据的存储与处理(有别

XML基础以及用DOM4j读取数据

都知道,HTML被设计用来显示数据,XML被设计用来保存.传输数据.而我们平时经常用的无非是保存数据.读取数据.所以这里主要介绍XML相关基础内容,以及用DOM4j来存取XML的数据. 下面简介XML相关的基础内容--命名空间.XSL.DTD与Schema 1>基本结构 ------------------------- ?  <>成对,区分大小写 ?  顶层元素只能有一个 ?  元素不能以xml开头,且不能有空格 2>命名空间 与我们编程语言中的命名空间类似,例如,如果想要建立两

(三)XML基础(3)

五.XPath:快速定位到节点 5.1 简介 5.2 语法 5.3 案例 XPath对有命名空间的xml文件和没有命名空间的xml定位节点的方法是不一样的,所以再对不同的xml需要进行不同的处理. 使用前提:  导入 Test_Xpath.java package dom; import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Doc

XML基础概念

XML基础概念 一.什么是XML. 可扩展标记语言(EXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 二.XML特点 1.XML与操作系统.编程语言和开发平台无关.. 2.实现不同系统.不同语言之间的数据交互. 三.XML基本结构 1.声明 <?xml version="1.0" encoding="UTF-8"?> XML第一行必须为XML文档第一行, version表示X

JavaEE XML 基础知识

JavaEE XML 基础知识 @author ixenos 1.    XML开头都需要一个声明 <?和?>表明这是一个处理指令 <?xml version=”1.0” encoding=”UTF-8” ?> 2.    <book id=”1.0”> </book> 等同于: <book> <id>1.0</id> </book> 3.    XML格式能够表达层次结构(树),并且重复的元素不会被曲解 4.

xml基础及其解析xml文档

xml基础及其解析xml文档 xml基础及其解析xml文档 xml基础语法 中国特色乱码问题 写xml文件的工具 xml中使用的转义字符 处理指令已经过时 xml的两个重要的功能 xml注释 xml解析Java应用程序读取xml文件的内容 xml解析原理 xml解析工具 DOM4J使用 DOM4J中核心API 将xml文档从磁盘读进内存形成Document对象 读取所有的标签节点 读取所有的属性节点 读取所有的文本节点 解决上面提出的问题 xml基础语法 一个基本的xml构成: <!--vers

xml基础小结

XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的“数据库” 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大小写.有且仅有一个根标签. 属性: 可有多个属性,但属性值必须用引号(单引号或双引号)包含,但不能省略,也不能单                                                  双混用. 文档声明: <?xml version="1.0" encoding="ut

xml基础知识的学习

xml基础知识学习: xml的特点:xml与操作系统.编程语言的开发平台都无关 实现不同系统之间的数据交互 xml:可扩展标记语言 html: xml结构:   <?xml version ="1.0" encoding ="UTF-8" ?> --xml文件的声明encoding 不写默认为UTF-8 <根元素>     <子元素1 属性="value">         <元素>值</元素

w3school XML基础教程

XML被设计用来传输数据,HTML被设计用来显示数据.XML是独立于软件和硬件的信息传输工具: XML是没有任何行为的,仅仅是纯文本,可以发明自己的标签,是对HTML的补充: 所有XML元素都必须有关闭标签,XML对大小写敏感,必须正确嵌套,必须有根元素,属性值必须加引号,空格会被保留: 元数据,即有关数据的数据,应当存储为属性,而数据本身应当存储为元素: 使用CSS格式化XML不是常用的方法,W3C推荐使用XSLT,XSLT转换可由浏览器或服务器进行,不论何种方式,输出结果完全相同. w3sc

XML基础+Java解析XML +几种解析方式的性能比较

XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数据,其焦点是数据的内容. HTML 被设计用来展示数据,其焦点是数据的外观. HTML可以不关闭标签(即标签可以不成对出现),但XML必须关闭标签(即标签必须成对出现). HTML中的标签标识文本如何展示,而XML中的标签标识文本是什么含义(什么类型的文本). XML文档节点类型 u     文档(