xml入门
2016-05-05 16:51
197 查看
一、xml简介
xml的全称是eXtensible Markup Language:可扩展标记型语言,给大家解释一下是什么意思,分为两个部分:标记型语言:这里给大家举个例子,比如说我要用记事本存储一些文字,直接输入保存就可以了,但是我不光想存储内容,我的文本还有一定的格式,比如标题的字体大小和居中显示,文本中重点内容用红色显示等,要怎么保存这些额外的东西呢?可以这样解决,给标题加一些标记,比如我把标题放到里面,告诉电脑这里面的内容是标题,要让它字体放大,居中显示,这样就能存储额外的东西了。这种加标记的语言就是标记型语言,它不只存储文本内容,还有文本格式和其它东西,和doc文档类似。
可扩展:这里拿html来解释一下,大家都知道html中有很多标签,比如html,body,h,p等,这些标签都是固定的,我们可以直接使用这些已有的标签,但是现在我想自己写标签,html是不支持的,而xml可以让我们自己写标签,这就是可扩展性,在原有的标签基础上再扩展一些自己写的标签。
xml的主要用途是为了存储数据,它目前有两个版本,1.0和1.1,用的最多的是1.0版本的,因为1.1版本的不能向下兼容
二、xml用途
1.不同的系统传输数据
举个例子说明一下,比如我用qq和朋友聊天,聊天内容是以什么样的形式发送给我朋友的呢?最早的时候聊天内容是以字符串的形式传送过去的。比如说字符串的内容包括发送方,接收方,发送的内容,发送时间这四部分数据,比如说字符串里的内容如下所示:str=”qq1:qq2:abcdefg:2016-5-5”,这种方式传送信息使程序的可维护性大大降低,现在使用的方式是以xml文件的格式传送的,同样的内容改为如下的格式:<message> <sender>qq1</sender> <reciver>qq2</reciver> <text>abcdefg</text> <time>2016-5-5</time> </message>
这种方式克服了字符串方式的缺点,利于程序的维护。
2.表示生活中有关系的数据
这里还是举个例子,现在我要存储一个省份中的城市还有城市里的县城等数据,因为这些数据之间是有关系的,所以得用特定的存储方式,可以用xml来存储:<?xml version="1.0" encoding="UTF-8"?> <陕西> <西安> <县城1></县城1> <县城2></县城2> <县城3></县城3> <县城4></县城4> </西安> <咸阳> <县城1></县城1> <县城2></县城2> <县城3></县城3> <县城4></县城4> </咸阳> <延安> <县城1></县城1> <县城2></县城2> <县城3></县城3> <县城4></县城4> </延安> <延安> <县城1></县城1> <县城2></县城2> <县城3></县城3> <县城4></县城4> </延安> <延安> <县城1></县城1> <县城2></县城2> <县城3></县城3> <县城4></县城4> </延安> </陕西>
这样存储这种有关系的数据结构很清晰,也容易解析得到里面的数据,而且不会破坏数据结构。
3.用在配置文件中
学习过开发的都应该接触过各种各样的配置文件,下面给出一些常见的xml文件:应用场景 | 文件名称 | 作用 |
javaWeb | web.xml | 存储着servlet,过滤器,参数等信息 |
安卓开发 | *.xml | 安卓页面布局信息 |
tomcat等web容器中的各类xml文件 | web.xml,server.xml等 | 存储着容器的相关配置信息 |
三、xml语法
一个xml文档包含下面一个部分:1. 文档声明
2. 元素
3. 属性
4. 注释
1.xml文档的声明
xml文档的声明格式如下:<?xml version="1.0" encoding="UTF-8"?>
解释一下各部分的含义,首先文档声明必须写在一对简括号和问号之间中,而且必须写在文档的第一行第一列,否则会出现错误。version是指xml的版本号,有1.0和1.1两个版本,encoding是指编码方式。
2.xml元素
xml中的元素写在小于号和大于号之间,标签一般是成对出现的,第二个标签必须加上斜杠<root> <n1> <a></a> </n1> </root>
注意,xml文档必须要有一个而且只能有一个根标签。
3.元素属性
属性写在第一个标签里面:<root id="1"> <n1 id="1"> <a id="1"></a> </n1 > </root>
一个元素可以有多个属性,属性之间用空格分开,属性值写在双引号里面。
4.注释
注释格式如下:<陕西> <!-- <西安> <县城1></县城1> <县城2></县城2> <县城3></县城3> <县城4></县城4> </西安> --> </陕西>
相关文章推荐
- 作图像处理时常用的C/C++语句积累!
- 程序员技术练级攻略
- 119.Binary Search Tree Iterator
- 推荐几款git管理工具
- JAVA并发编程实战---第二章:线程安全性
- jQuery插件分类、编写及实例
- 自定义View系列教程01--常用工具介绍
- Java设计模式之缺省模式
- Java 关于加密哪些事儿
- 自定义View系列教程01--常用工具介绍
- Xcode因为证书问题经常报的那些错
- 【FOL】第一周
- 封装EF code first用存储过程的分页方法
- SpringMVC拦截器2(资源和权限管理)(作为补充说明)
- Spring AOP术语
- Java基础系列--包装类
- Java设计模式之适配器模式
- iOS 连个应用之间的跳转
- ReactNative 开发Android应用
- Pylinter could not automatically determined the path to 'lint.py'