美文网首页
XML简单学习

XML简单学习

作者: Arvesynden | 来源:发表于2019-08-13 14:44 被阅读0次

什么是XML?

XML指可扩展标记语言(EXtensible Markup Language),被设计用来传输和存储数据。

XML是一种标记语言,很类似 HTML。

XML的设计宗旨是传输数据,而非显示数据。

XML标签没有被预定义。您需要自行定义标签。

XML被设计为具有自我描述性。

XML是 W3C 的推荐标准。

比较XML和HTML:

XML不是 HTML 的替代。

XML和 HTML 为不同的目的而设计:XML 被设计为传输和存储数据,其焦点是数据的内容。HTML 被设计用来显示数据,其焦点是数据的外观。

HTML旨在显示信息,而 XML 旨在传输信息。

HTML语法比较松散,xml语法严格

HTML所有标签都是预先定义好的, 使用固定的标签,展示不同的内容。XML当中的标签都是自己定义的。

在XML中,空格会被保留,HTML 会把多个连续的空格字符裁减(合并)为一个。

XML的作用:数据存储配置文件数据传输

XML的基本语法规则:

(1)文档声明:<?xml version="1.0">必须在第一行

(2)所有 XML 元素都须有关闭标签

(3)XML 标签对大小写敏感

(4)XML 必须正确地嵌套

(5)XML 文档必须有根元素

(6)XML 的属性值须加引号

(7)实体引用

在XML中,一些字符拥有特殊的意义。

如果你把字符"<"放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。这样会产生 XML 错误:为了避免这个错误,请用实体引用来代替 "<" 字符:

5个预定义的实体引用

  &lt; <小于

  &gt;  >大于

  &amp;  & 和号

  &apos;  ' 单引号

  &quot;  " 引号

注释:在XML中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

(8)<![CDATA[数据内容]]>里面的数据会原样显示

 (9)属性值必须引用引起,单双都行。

例子:

XML树形结构:

XML约束:

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

约束分类:

1、DTD约束:<!DOCTYPE 根元素 [元素声明]>

(1)内部dtd:在xml当中定义的dtd

(2)外部dtd:在外部文件当中单独定义的dtd

①本地:<!DOCTYPE 名称 SYSTEM  "student.dtd">

②网络:<!DOCTYPE students PUBLIC"命名空间"  "student.dtd">

约束语法

存在的问题

在标签当中存放的内容不知道是什么类型。

(2)schema:XML Schema 支持数据类型和命名空间。

复杂标签:标签当中还有子标签

简单标签:标签当中没有子标签了

语法

①type 起的别名

complexType name="students"

sequence

element  name=""  minOccur相当于dtd的*

simpleTyle

restriction  base="xsd:string"限制简单标签当中的数据类型

schema分析

使用过程

①编写根标签

②引用约束地址xsi:schemaLocation="默认空间    约束地址.xsd"

③引用实例名称空间

     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

④默认名称空间xmlns="http://www.it666.cn/xml"

DOM:Document Object Model:文档对象模型,把文档中的成员描述成一个个对象. 使用Java代码操作XML 或者  js代码操作HTML。

DOM解析的特点

(1)在加载的时候,一次性的把整个XML文档加载进内存,在内存中形成一颗树(Document对象).

(2)以后使用代码操作Document,其实操作的是内存中的DOM树,和本地磁盘中的XML文件没有直接关系.

(3)由于操作的是内存当中的dom,磁盘中xml当中的内容并没有变,要进行同步,让两边保持一致

(4)查询不需要同步,只有数据变化的时候,才需要同步

缺点:若XML文件过大,可能造成内存溢出.

DOM解析步骤

1.创建解析器工厂

2.通过解析器工厂得到解析器

3.通过解析器得到document对象

4.获取具体的节点内容

例子:

运行结果:

DOM修改元素内容:

1.获取所有指定节点

2.获取要修改的节点

3.修改元素内容

4.从内存写到文档做同步操作

DOM添加元素

1.创建一个节点

2.设置元素内容

3.获取要添加元素的父结点

4.添加节点

5.从内存写到文档做同步操作

DOM删除元素

1.获取一个节点

2.获取该节点的父节点,从父节点当中移除

3.从内存写到文档做同步操作

DOM添加元素属性

1.获取要添加属性的节点

2.把获取的节点强制转换成element

3.设置属性

4.从内存写到文档做同步操作

Sax解析:

逐行读取,基于事件驱动

优点:不占内存,速度快

缺点:只能读取,不能回写

DOM4j介绍

DOM4J是dom4j.org出品的一个开源XML解析包。

dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件

越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。

DOM4j解析:

创建SAXReader

读取指定路径的xml

获取所有指定标签内容

1.创建SAXReader

2.获取根元素

3.获取根元素下所有的元素

4.遍历每一个子元素

5.获取指定名称的元素

6.获取标签当中的文本

获取全部标签内容

1.创建SAXReader

2.获取根元素

3.获取根元素下所有的元素

4.遍历每一个子元素

添加元素

1.创建SAXReader

2.获取根元素

3.给根元素添加元素和属性,并返回添加的元素

相关文章

  • XML简单学习

    什么是XML? XML指可扩展标记语言(EXtensible Markup Language),被设计用来传输和存...

  • 简单学习XML门径(XML入门1)

    学习电脑知识是从最简单的开关效应,最简单的0和1开始的。电视机的按钮多了,就成了电脑。实际电脑就是提供一个一个的...

  • 简单学会XML声明(XML入门2)

    简单学会XML声明(XML入门2) 学习XML编网页并不是好的选择。XML的主要作用就是存取数据和数据交换。最大...

  • xml 处理

    简单解析XML : 生成XML:

  • python(解析和构建xml文档)

    xml解析 xml文档 code 构建xml文档 简单使用 code

  • iOS解析XML

    2.0 XML解析 2.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 2.2 XML解析...

  • iOS开发-XML解析

    一、 XML解析 1.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 1.2 XML解析 ...

  • 3-XML解析

    3.0 XML解析 3.1 XML简单介绍 (1) XML:可扩展标记语言 (2) XML解析 3.2 XML解析...

  • xml解析之Pull

    为了学习Pull解析xml,可以简单的做个小Demo 第一步:以字符串的形式创建出xml。String str =...

  • 记一次python XML-RPC简单学习

    小白刚入门,如有不足之处请多指教。谢谢! 今天简单记录一下XML-RPC 的学习过程。 1.什么是XML-RPC?...

网友评论

      本文标题:XML简单学习

      本文链接:https://www.haomeiwen.com/subject/stavjctx.html