javaweb学习笔记(十):XML

版权声明:转载请注明出处: https://blog.csdn.net/qq_34774655/article/details/83539458

目录

 

1 xml入门

2 xml语法

3 xml显示

4 XML解析方式及工具

5 xml约束


1 xml入门

Extensible Markup Language(可扩展标记语言),XML 的设计宗旨是传输数据,而不是显示数据。XML 标签没有被预定义,需要自行定义标签。

XML 和 HTML 为不同的目的而设计:

    XML 被设计用来传输和存储数据,其焦点是数据的内容。

    HTML 被设计用来显示数据,其焦点是数据的外观。

2 xml语法

在一个xml文档中,有且仅有一个根标签。

①标签:配对标签(如:<note></note>)或空标签(如:<note/>)

可有字母和数字和其他字符组成,但不能以数字开头,且区分大小写。

②属性:属性值必须以引号包含,一个标签可以有多个属性,但不能有重复的属性名。

例:<note name=zhangsan id=2> student </note>

③文档声明(可选,若存在需放第一行):<?xml version=1.0 encoding=utf-8?>

version:xml的版本号。 encoding:解析xml文件时查询的码表。

④注释(同HTML):<!-- xml注释 -->

⑤转义字符

<

<

less than

>

>

greater than

&

&

ampersand

'

'

apostrophe

"

"

quotation mark

⑥CDATA块:让一些包含特殊字符的内容统一进行原样输出。

<![CDATA[

内容

]]>

<note>
    <![CDATA[
        <p>段落</p>
        <!--原样输出  xiao hua-->
    ]]>
</note>

3 xml显示

xml文档不会携带有关如何显示数据的信息。大多数浏览器仅仅把xml文档显示为源代码。

①可以通过css显示xml文档。如在xml文件开头加入:

<?xml-stylesheet type="text/css" href="格式化css文件"?>

②也可以通过XSLT查看xml文件,它会把xml转为HTML。(推荐)

4 XML解析方式及工具

xml解析方式(原理不同):

①DOM解析:xml解析器一次性把整个xml文档加载进内存,然后在内存中构建一颗Document的对象树,通过Document对象,得到树上的节点对象,通过节点对象访问(操作)到xml文档的内容。

xml DOM(xml Document Object Module,文档对象模型)定义了访问和处理xml文档的标准。XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。

根据 DOM,XML 文档中的每个成分都是一个节点。其中整个文档是一个文档节点(Document对象),文档节点只有一个根标签,树上的分支叫节点(Node),节点Node(父节点)细分为:每个 XML 标签是一个标签节点(Element),包含在 XML 标签中的文本是文本节点(Text),每一个 XML属性是一个属性节点(Attribute),注释是注释节点(Comment)。

②SAX解析

DOM解析

SAX解析

原理: 一次性加载xml文档,不适合大容量的文件读取

原理: 加载一点,读取一点,处理一点。适合大容量文件的读取

DOM解析可以任意进行增删改

SAX解析只能读取

DOM解析读取任何位置的数据,甚至往回读

SAX解析只能从上往下,按顺序读取,不能往回读

DOM解析面向对象的编程方法(Node,Element,Attribute),Java开发编码比较简单。

SAX解析基于事件的编程方法java开发编码相对复杂。

5 xml约束

要求:能够看懂约束内容,根据约束内容写出符合规则的xml文件。(具体的DTD约束的语法和Schema约束的语法可参考W3School教程。)

XML语法与约束的区别:

XML语法: 规范xml文件的基本编写规则。(由w3c组织制定的)

XML约束: 规范XML文件数据内容格式的编写规则。(由开发者自行定义)

XML约束技术:

DTD约束:语法相对简单,功能也相对简单。

Schema约束:语法相对复杂,功能也相对强大。(主要学习名称空间

XML Schema VS DTD:

1.XML Schema符合XML语法结构。

2.DOM、SAX等XML API很容易解析出XML Schema文档中的内容。

3.XML Schema对名称空间支持得非常好。

4.XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。

5.XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。

6.XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_34774655/article/details/83539458