XML基础详解

原始目的是Android编程的,本来按照第一篇中的Android的课程大纲中的计划来实行,可是发现第一阶段和第二阶段的东西太多了,扯得太远了,等以后回来学。

先把其中要用的要了解的知识点现学一下,首先就是XML基础。

把视屏中的内容,当笔记抄一遍。东西太多,都是手打,加深印象。


XML详解

什么是XML?

1.英文全称为Extensible Markup Language,翻译过来就是”可扩展标记语言“。XML技术是W3C组织发布的,目前遵循的是W3C组织于2000年发布的XML1.0规范。

(为什么出现XML)

2.现实生活中存在着大量的数据,在这些数据之间往往存在一定的关系,我们希望能在计算机中保存和处理这些数据的同时能够保存和处理他们之间的关系。

3.XML就是为了解决这个需求而产生数据储存格式。


XML是如何保存数据的?

1.在XML语言中,他允许用户自定义标签,每一个标签用于描述一段数据。

2.一个标签可以分为开始标签和结束标签,在开始标签和结束标签之间又可以嵌套其他标签,利用标签间的嵌套关系来保存数据之间的上下级关系。

3.由于xml实质上是一段字符串,计算机可以十分方便的阅读,因此可以说这是一种对人,对计算机都很友好的数据储存格式i,所以xml迅速普。


XML常见应用场景——数据传输

XML本质上是一段字符串,具有跨平台性,因此XML常被用在不同系统之间进行数据交换。

例子:一个典型的android应用是由服务器发送信息给android客户端后,由android客户端负责展示。此时android的客户端是java+android开发平台,而服务器端可能是C#+windows开发环境。所以这样XML仍然可以在不同的语言不同的操作系统之间进行传递数据。

XML常见应用场景——配置文件

XML可以在保存数据的同时保存数据之间的关系,你用这一特性,他还经常作为应用程序配置文件来使用。


XML文件:
1.XML文件是一种存储数据的格式,我们可以将遵照这种数据格式写出来的XML数据保存到一个文件中去,并将文件的后缀设定为 .xml ,那么这样子的保存了XML数据的文件就叫XML文件了。(我觉得好废话呀,不过我还是抄下来了)

2.xml文件是保存XML数据的一种方式,XML数据也可以其他的方式存在(如在内存中构建XML数据),不要将XML语言狭隘的理解成XML文件。


XML校验:

1.浏览器除了内置HTML解析其外还内置了XML解析器,因此我们可以使用浏览器对XML进行校验。

2.方式:将XML使用得xml文件保存起来,利用浏览器进行校验。


XML语法

一个XML文件分为如下几个部分:

<?xml version="1.0" encoding="GB2312"?>    
<中国>
	<北京>
		<海淀></海淀>
		<丰台></丰台>
	</北京>
	<河北>
		<唐山></唐山>
		<石家庄></石家庄>
	</河北>
	<山东>
		<济南></济南>
		<青岛></青岛>
	</山东>
</中国>

文档声明

元素

属性

注释

CDATA区、特殊字符

处理指令(PI)


1.XML文档声明:

是用来声明文档基本属性的,XML解析器将根据文档声明决定如何正确解析一个xml。

a.通常来说一个xml必须包含且只包含一个文档声明

b.文档声明必须处在xml的第一行,前面不可能有其他内容

c.如果一个xml不包含文档声明测称这样的xml为格式不良好的xml

格式一:<?xml version="1.0" ?>

           version代表当前xml所遵循的xml标准

           第二个问号之前应该有一个空格

           注意,问号、引号、空格必须为英文半角

格式二:用encoding属性说明文档的字符编码

              <?xml version="1.0" encoding="GB2312" ?>

           (xml保存的时候的编码要和encoding 的编码一样)

格式三:用standalone属性说明文档是否独立

              <?xml version="1.0" encoding="GB2312" standalone="yes" ?>

             standalone表示当前xml文档是否是一个独立文档,yes是独立的


2.XML元素

a.一个XML标签就是一个XML元素

b.一个XML标签分为开始标签和结束标签,在开始标签和结束标签之间的文本称为标签体。

   包含标签体:<a>www.itcast.cn</a>

c.如果一个不包含标签体也不包含其他元素,那么可以将开始元素和结束元素合并,这样的标签称为自闭标签

   不含标签体及其他元素:<a></a>      可以简写为自闭标签:<a/>

d.一个标签中也可以嵌套若干子标签,但所有标签必须合理的嵌套,绝不允许交叉嵌套。

e.格式良好的XML文档必须有且仅有一个根标签,其他标签都是这个标签的子孙标签。

f.对于XML标签中出现的所有空格和换行,XML解析程序都会当做标签内容进行处理。

g.由于在xml中,空格和换行都作为原始内容被处理,所以,在编写xml文件时,使用换行和缩进方式来让源文件中的内容清晰可读的”良好“书写习惯可能要被迫改变。

h.一个XML元素可以包含字母。数字以及其他一些可见字符,但必须遵守下面的规则

  • 区分大小写,例如,<P>和<p>是两个不同的标记。
  • 不能以数字或标点符号或"_"开头。
  • 不能以xml(或XML、或Xml 等)开头。
  • 不能包含空格。
  • 名称中间不能包含冒号(:)。

3.属性

a.一个标签可以有多个属性,每个属性都有他自己的名称和取值

                                                        <china capital="beijing"/>

b.属性值一定要用双引号或单引号引起来

c.定义属性名必须遵循与元素相同的命名规则


4.XML注释

a.XML文件注释格式:<!--注释-->

b.注释不能出现在文档声明之前

c.注释不能嵌套


5.CDATA区

a.当XML中一般内容不希望被解释器解析时可以使用CDATA区将其包含住

b.当解析器遇到CDATA区时会将其内容当作文本对待,不会进行解析

c.语法:<![CDATA[ 内容 ]]>

d.场景一:在输入框中输入的用户名,密码,使用XML保存传递到后台。


6.转义字符

a.对于一些单个字符,若想显示其原始样式,也可以使用转义的形式给予处理

b.CDATA区与转义的不同:CDATA可以保留特殊符号而转义是使用其他的符号代替特殊符号。因此场景一中问题应使用用CDATA区处理

c.场景二:将保存在后台的张>使用XML带给浏览器展示。此时因为只是用来展示,所以使用CDATA与转义字符均可。因为只转义一个>所以推荐使用转义字符


7.处理命令

a.处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。

b.例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。    <?xml-stylesheet type="text/css" href="1.css"?>

c.处理指令必须以“<?”作为开头,以“?>”作为结尾,

d.XML文档声明语句就是最常见的一种处理指令。


XML约束

XML约束概述:

1.什么是XML约束:在xml技术里,可以编写一个文档来约束一个xml文档的写法,这个称为xml约束。

2.XML约束的作用:约束xml文档的写法,对xml进行校验。

3.常见的XML约束技术XML DTD  与XML Schema


XML编程

一个XML文件除了我们人去读写以外,我们希望可以通过程序去读写,利用编程去增删改查XML的过程就是XML编程。CRUD   :Create、Read、Update、Delete
1.dom解析:
将整个XML使用类似树的结构保存在内存中,再对其进行操作。
是 W3C 组织推荐的处理 XML 的一种方式。
需要等到XML完全加载进内存才可以进行操作
耗费内存,当解析超大的XML时慎用。
可以方便的对xml进行增删该查操作
2.sax解析:
逐行扫描XML文档,当遇到标签时触发解析处理器,采用事件处理的方式解析xml
 (Simple API for XML) 不是官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它。
在读取文档的同时即可对xml进行处理,不必等到文档加载结束,相对快捷
不需要加载进内存,因此不存在占用内存的问题,可以解析超大XML
只能用来读取XML中数据,无法进行增删改。








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IXML v1.2 Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 BOOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 DOM Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1 Interface Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 Interface Attr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Interface CDATASection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.4 Interface Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.5 Interface Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.6 Interface NamedNodeMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.7 Interface NodeList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5 IXML API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值