XML

XML语言即是可扩展标记语言,可以对文档和数据进行结构化处理,它被设计用来传输和存储数据

XML语法

一个XML文件分为如下几个部分:文档声明、元素、属性、注释、CDATA区、特殊字符、处理指令。

文档声明

一般放在文档的第一行,说明XML文档的类型和字符编码格式

<?xml version="1.0" encoding="utf-8"?>

元素

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。一个元素可以包含其他元素、文本、属性等,一般一个XML文件包含一个根标签,其他标签都是这个根标签的子标签。
- 一个标签中可以嵌套多个子标签,但所有标签必须合理嵌套,不允许交叉嵌套;

  • XML标签中出现的空格和换行都会被当做标签的内容进行处理;

  • XML元素可以包含字母数字和一些可见字符,但是名称不能以数字或者标点符号开始、名称不能以字母 xml(或者 XML、Xml 等等)开始、名称不能包含空格;

  • XML是大小写敏感的;

  • XML中的标签总是成对出现的,结束标签不能省略;

  • 如果没有结束标签,元素必须以/结尾;

属性

XML元素具有属性,类似 HTML。属性(Attribute)提供有关元素的额外信息。一个标签可以有多个属性,每个属性都有自己的名称和取值;例如

<applet code = 'hellloWorld.class' width = '300' height = '100'>
  • 属性必须用单引号和双引号括起来;

  • 所有属性必须有属性值;

  • 标签属性所代表的信息,其实可以用子元素的形式来描述;

<applet>
    <code>hellloWorld.class</cede>
    <width>300</width>
    <height>100</height>
</applet>

注释

XML 中编写注释以 < !–注释– > 格式,注释中不能包含字符串–。

CDATA区

CDATA区的内容不会而被解析引擎解析,而是被当做原始内容处理,一般被放在 < ![CDATA[内容]] > 中,内容中可以包含<、>、&之类的特殊字符。

特殊字符

字符引用:可以使用&#的十进制或&#x的十六进制形式;
实体引用:对一些特殊字符,如果要显示其原始样式,需要使用&name的形式,也可以在DTD中定义其他实体引用

特殊字符替代字符
&&amp
<&lt
>&gt
&quot
&apos

处理指令

处理指令(processing instruction,PI)用来告诉解析引擎如何解析XML文档内容,以

<?xml-stylesheet type = "text/css" herf = "1.css">

XML约束

用来约束XML文件结构的文档,有文档类型定义(Document Type Definition,DTD)和XML Schema两种方式,它们都包含了用于解释文档应如何构成的规则,这些规则指定了每个元素的合法子元素和属性。

DTD

文件使用

DTD既可以在XML文件内编写,也可以从外部引用。
- 在XML文件内编写格式为:

<!DOCTYPE 根元素 [元素声明]>

文档类型必须匹配根元素的名字,例子如下:

<!DOCTYPE configuration [
    <!ELEMENT configuration...>
    more rules
    ...
]>
<configuration>
...
</configuration>
  • 外部引用:当引用的文档在本地时,可以使用SYSTEM声明来进行引用,格式为:
<!DOCTYPE 根元素 SYSTEM "文件名">

例如:

<!DOCTYPE configrition SYSTEM "config.dtd">

解析XML文件

要处理XML文件必须先解析它,解析一个XML的过程是,先读入一个文件,确认文件具有正确的格式,然后将其分解为各个元素,JAVA提供了两种XML文件解析器:文档对象模型解析器和流机制解析器;

文档对象模型解析器

文档对象模型解析器(DOM)将读入的XML转换成树结构,当需要处理很长的文档时,用它生成树结构将耗费大量的内存,如果程序只关心文档中的某些元素而不关心上下文,可以考虑使用流机制解析器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值