1. 什么是xml
    XML 指可扩展标记语言(EXtensible Markup Language),它的结构是一种树形的结构,必须有一个根节点
    XML 是一种标记语言,很类似 HTML
    XML 的设计宗旨是传输数据,而非显示数据
    XML 标签没有被预定义。您需要自行定义标签。
    XML 被设计为具有自我描述性。
    XML 是 W3C 的推荐标准

  2. html与xml区别
    XML 不是 HTML 的替代。
    XML 和 HTML 为不同的目的而设计:
    XML 被设计为传输和存储数据,其焦点是数据的内容。
    HTML 被设计用来显示数据,其焦点是数据的外观。
    HTML 旨在显示信息,而 XML 旨在传输信息。
    HTML语法比较松散,xml语法严格
    HTML所有标签都是预先定义好的, 使用固定的标签,展示不同的内容
    XML当中的标签都是自己定义的
    XML用处
    数据存储
    配置文件
    数据传输

  3. 基本语法
    3.1:
    文档声明
    必须写在文档的第一行
    写法:<?xml version="1.0" encoding="UTF-8"?>
    属性有:
    version版本号,固定1.0
    encoding指定文档的码表 默认iso-8859-1
    standalone指定文档是否独立yes或no 意思是:是否可以引用其它文件

3.2:规则
所有 XML 元素都须有关闭标签
XML 标签对大小写敏感
XML 必须正确地嵌套
XML 文档必须有根元素
XML 的属性值须加引号,单引号和双引号都行
实体引用
在 XML 中,一些字符拥有特殊的意义。
如果你把字符 “<” 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。这样会产生 XML 错误:为了避免这个错误,请用实体引用来代替 “<” 字符:
5 个预定义的实体引用
& lt; < 小于
& gt; > 大于
& amp; & 和号
& apos; ’ 单引号
& quot; " 引号
3.3 元素
名称可以包含字母数字以及其他符号,但是不能以数字或者标点符号开始,名称不能以字符xml或者XML或者Xml开始,而且名称不能包含空格

3.4 文本
就是有些内容我不想xml解析,想将内容原样输出,这时可以使用转义字符cdata标签,里面的内容会原样输出显示
格式: <![CDATA[数据内容]]>


显示这样

  1. xml约束
    4.1什么是约束
    规定文档当中只能写哪些标签。并且会给一些提示

4.2约束分类
4.2.1 DTD约束(它比较简单,但是相对的功能肯定也少)
4.2.1.1内部dtd
在xml当中定义的dtd
4.2.1.2外部dtd
在外部文件当中单独定义的dtd
本地:<!DOCTYPE 名称 SYSTEM “student.dtd”
网络:<!DOCTYPE students PUBLIC “命名空间” “student.dtd”

约束语法:

学习要求
不要求自己写出来,能看懂别人写的dtd约束
存在的问题
在标签当中存放的内容不知道是什么类型,写的都是汉字,这种约束不严谨

4.2.2 schema约束(它难点,但是相对的功能肯定也多)
4.2.2.1:使用格式
1编写根标签
2引用约束地址 xsi:schemaLocation=“默认空间 约束地址.xsd”
3引用实例名称空间 xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
4默认名称空间 xmlns=“http://www.it.com/xml”
默认空间是自己定义的,随便起名字
约束地址就是你定义的schema的文件路劲,
引用实例名称空间是写死的,就是固定从网络加载一些官网定义好的数据类型
4.2.2.2
复杂标签
标签当中还有子标签
简单标签
标签当中没有子标签了
4.2.2.3 语法
type 起的别名
complexType name=“students” 复杂类型
sequence 就是出现的顺序
minOccur相当于dtd的*,就是出现的最少的次数,
maxOccur就是最多出现的次数
simpleTyle 简单类型
例如: restriction base=“xsd:string” 限制简单标签当中的数据类型



这里的targetNamespace是和上面的命名空间是同一个就行

  1. xml解析
    5.1 xml文档结构
    XML的树结构

使用一种方式来表示整个xml
结点

5.2 dom
5.2.1什么是DOM
DOM:Document Object Model:文档对象模型,把文档中的成员描述成一个个对象.
使用Java代码操作XML 或者 js代码操作HTML
5.2.2 DOM解析的特点
在加载的时候,一次性的把整个XML文档加载进内存,在内存中形成一颗树(Document对象).
以后使用代码操作Document,其实操作的是内存中的DOM树,和本地磁盘中的XML文件没有直接关系.
由于操作的是内存当中的dom,磁盘中xml当中的内容并没有变,要进行同步,让两边保持一致
查询不需要同步,只有数据变化的时候,才需要同步
缺点:若XML文件过大,可能造成内存溢出.
5.2.3 DOM解析步骤
1.创建解析器工厂
2.通过解析器工厂得到解析器
3.通过解析器得到document对象
4.获取具体的节点内容
例如
5.2.4DOM修改元素内容
1.获取所有指定节点
2.获取要修改的节点
3.修改元素内容
4.从内存写到文档做同步操作
例如

5.2.5DOM添加元素
1.创建一个节点
2.设置元素内容
3.获取要添加元素的父结点
4.添加节点
5.从内存写到文档做同步操作

5.2.6DOM删除元素
1.获取一个节点
2.获取该节点的父节点,从父节点当中移除
3.从内存写到文档做同步操作

5.2.7DOM添加元素属性
1.获取要添加属性的节点
2.把获取的节点强制转换成element
3.设置属性
4.从内存写到文档做同步操作

5.3 dom4j
DOM4j介绍
DOM4J是dom4j.org出品的一个开源XML解析包
dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件
越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。

Sax解析介绍
逐行读取,基于事件驱动
优点:不占内存,速度快
缺点:只能读取,不能回写
解析流程,就是一句一句地读取文档,像执行代码程序一样

5.4 dom4j解析步骤

  1. 下载Dom4j的jar包

  2. 在工程根目录当中创建一个文件夹为lib

  3. 编译jar包

  4. 创建SAXReader

  5. 读取指定路径的xml

  6. 获取所有指定标签内容
    1.创建SAXReader
    2.获取根元素
    3.获取根元素下所有的元素
    4.遍历每一个子元素
    5.获取指定名称的元素
    6.获取标签当中的文本

  7. 获取全部标签内容
    1.创建SAXReader
    2.获取根元素
    3.获取根元素下所有的元素
    4.遍历每一个子元素

  8. 添加元素

    1.创建SAXReader
    2.获取根元素
    3.给根元素添加元素和属性,并返回添加的元素
    // 这里是为了将写入格式改变成utf-8的编码格式,所以调用了Writer的输入流

    Writer wr = new OutputStreamWriter(new FileOutputStream(“src/com/xml/dom4j/student.xml”),“UTF-8”);
    doc.write(wr);
    wr.close();

XML简介,XML和HTML的区别,XML用处,XML规则,XML约束,XML语法,XML解析,DOM相关推荐

  1. 阶梯到XML:1级 - XML简介

    作者: Rob Sheldon,2014/03/26 原文链接:http://www.sqlservecentral.com/articles/stairway+series/introduction ...

  2. [js] XML与JSON有什么的区别?

    [js] XML与JSON有什么的区别? xml 可以设 id,用 include 之类的可以直接引用过来,甚至可以约定内容格式. 但 json 不依赖 js 等语言就很难完成了.好吧,广义上来讲, ...

  3. 课外阅读(XHTML和XML简介)

    课外阅读 一.XHTML简介 HTML从出现发展到今天,仍有些缺陷和不足.HTML的三个主要缺点如下. (1)太简单.不能适应现在越来越多的网络设备和应用的需要,比如手机.PDA.信息家电都不能直接显 ...

  4. XML简介及基本语法

    目录 一.xml的简介(了解) 二.xml的语法 1.文档声明 2.元素/标签定义 3.属性 4.注释 5.转义字符 6.CDATA区 7.PI指令(处理指令) 三.xml的约束 四.DTD约束 五. ...

  5. web.xml中的ContextLoaderListener和DispatcherServlet区别

    web.xml中的ContextLoaderListener和DispatcherServlet区别 ContextLoaderListener和DispatcherServlet都会在Web容器启动 ...

  6. 一、AJAX学习笔记——原生AJAX (ajax简介、XML简介、ajax优缺点、ajax的使用)

    第 1 章:原生 AJAX 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML. 通过 AJAX 可以在浏览器中向服 ...

  7. XML中PCDATA与CDATA的区别

    XML中PCDATA与CDATA的区别 2011-02-10 19:27:25|  分类: XML |  标签:xml中pcdata与cdata的区别     字号:大中小 订阅 所有 XML 文档中 ...

  8. XML简介及两种C#读取方式

    XML简介及两种C#读取方式 XML作用 对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企业可以制定一套 ...

  9. 小白也能看懂的XML简介

    目录 一.XML简介 二.XML用途 三.XML结构 四.XML语法 五.XML元素 六.XML属性 七.总结 一.XML简介 1.XML指可扩展标记语言,很类似HTML. (XML被设计为传输和存储 ...

最新文章

  1. python中带星号的参数,带有一个星号 2个星号
  2. html5 Canvas画图教程(5)—canvas里画曲线之arc方法
  3. 弹出提示对话框并重定向网页
  4. 太强了!用动图演示NLP中的自监督表示学习
  5. UVA1354天平难题 枚举二叉树
  6. [小技巧][JAVA]函数返回一个长度不确定的数组 (int[ ])
  7. 【数据结构与算法】顺序表的Java实现
  8. ubuntu 14.10 64bit系统安装MBuntu主题(仿Mac主题)
  9. django mac 安装mysql_mac安装MySQL-Python报错
  10. [渝粤教育] 陕西国防工业职业技术学院 Android开发 参考 资料
  11. Java Set操作
  12. python 拆分字符串反斜杠_用反斜杠拆分字符串
  13. Buck-Boost电路
  14. ​2021年度学习清单
  15. GlassFish安装
  16. 几个好用的谷歌浏览器插件
  17. python爬取百度使用kw关键字爬取时出现,百度安全验证,解决方法
  18. 累次积分怎么计算_把下列累次积分化为极坐标的累次积分,并计算其值 (3)
  19. vivo怎么切换为Android,vivox60pro如何切换系统 一键切换手机不通系统方法
  20. 解决windows10 时间轴灰色的活动历史记录无法删除的问题

热门文章

  1. linux和win双系统删除,双系统删除教程详解:Windows(linux)双系统,教你如何删除其中一个!...
  2. 将Pdf文件转换为Word
  3. 东软数据分析软件图表详解 - 什么是桑基图
  4. 限流的4种策略--固定窗口、滑动窗口、漏桶、令牌桶
  5. 中国安全技术防范行业协会资质科普:什么是安防资质?要怎么通过资质申请?
  6. Listary Pro 能提高效率的一款神器
  7. 2021-11-29 AndroidR WiFi可以上网,但是Settings里提示“No Internet”的问题的一个解决方法,通过ping一个网站确认网络的情况。java ping 网络的代码。
  8. Mysql经纬度查询
  9. mysql 查找 法语字母_Mysql使用可选的法语字符搜索LIKE
  10. 1047: 字母编号