欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

javaweb学习笔记(十):XML

程序员文章站 2022-03-02 22:37:32
...

目录

 

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。  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关标签: javaweb