XML入门

来源:互联网 发布:淘宝店铺怎样提高销量 编辑:程序博客网 时间:2024/06/05 15:14

一、XML的简单介绍

XML(Extensible Markup Language)可扩展的标记语言。设计的宗旨是传输数据,而非显示数据。但在当今的开发中已经用更简便的JSON来传输数据了,XML则被更多地应用在配置文件中(也有用于存储数据)。XML不是对HTML的替代而是一种补充

在java web开发中。有时候我们会需要使用不同的路径来执行不同的资源,这时候就需要使用XML配置。为限定XML内容,我们需要使用XML约束(DTD或schema);为了获得xml的内容,我们需要使用dom4j进行解析。

二、XML的语法

1、XML文档声明

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

version属性指定文档版本必须有(大部分选用1.0版本,因为更高的1.1版本不向下兼容),encoding属性可选
2、元素
和HTML不同,XML中的元素名称可以随意命名(区分大小写;不能使用空格,冒号;不建议以Xml等开头),但是必须有开始结束标签。空元素例如:
3、属性
属性是元素的一部分,必须在元素的开始标签中。

    <boy id="男孩" color="白色">        大家好    </boy>

4、转义字符
< > ’ ” & 这些符号因为已经被XML文档结构使用,因此需要转义。
当出现大量转义字符时,可以使用CDATA区:

<![CDATA[    任意内容]]>

三、XML约束

1、DTD约束(Document Type Definition)
开发中我们很少自己编写DTD约束,一般都是根据框架给定的DTD约束来编写XMl文件。

定义元素语法:

<!Element 元素名 元素描述>元素名:自定义    元素描述:符号和数据类型    常见符号:                  ? —— 最多出现一次                              * —— 出现任意次                              + —— 最少出现一次                             ( )—— 给元素分组                              | —— 在竖线分割的元素中选一个                              ,—— 对象必须按顺序出现    常见类型:#PCDATA表示内容是文本,不可以是子标签。

定义属性语法:

<!ADDLIST 元素名     属性名 属性类型 约束     属性名 属性类型 约束     ……>

2、Schema约束
是DTD的替代者,比他强大很多:数据类型更完善。它本身也是XML文档,但Schema文档的扩展名是xsd,支持名称空间。

四、XML解析方式和解析器

解析方式:

1)DOM:将文档一次性加载到内存中形成树结构,并形成Document对象,进行解析。
可以增删改查但有可能内存溢出。

2)SAX:Simple api for XML:事件驱动方式,边读边写。
不能增删改查,但是文档大也不会导致内存溢出
3)PULL:Android内置,类似SAX

解析器:常用的解析开发包

—— JAXP:sun公司提供的支持DOM和SAX开发包
——JDom:dom4j的兄弟
——jsoup:一种处理HTML特定解析开发包
——dom4j:比较常用的解析开发包,hibernate底层采用。


——DOM中的核心概念是节点,在XML文档中元素,属性,文本都是节点。

dom4j使用:首先要导入jar包。dom4j使用核心类SaxReader的read()加载xml文档获得document,通过document对象的getRoodElement()获得文档的根元素Element对象然后就可以操作了(elements()获取指定名称的所有子元素。可以不指定名称。element()获得第一个元素。getName()获得当前元素的元素名。attributeValue(…)获得指定属性名的属性值。elementText()获得指定名称子元素的文本值。getText()获得当前元素的文本内容)。

原创粉丝点击